Make preliminary Seasocks server with data collector.
This is stage 2 of the http_status project!
Currently, this version can display various things from the queues in
a web browser, but only in plain text. It implements some of the basic
classes that will later be used for later stages. It also supports
concurrent connections.
A couple of things not included are all the trigger/bandwidth adjust
options.
Change-Id: I108d965a768c073a0f4b3757c0475fe7bfc34ccb
diff --git a/aos/build/externals.gyp b/aos/build/externals.gyp
index 2bfe241..c4bbaa2 100644
--- a/aos/build/externals.gyp
+++ b/aos/build/externals.gyp
@@ -207,6 +207,12 @@
'<(AOS)/externals/seasocks',
'<(externals)/seasocks-<(seasocks_version)/src/main/c',
],
+ 'cflags': [
+ # Since seasocks/WebSocket.h has functions implemented that don't use
+ # their parameters, the compilation of http_status would fail without
+ # the following exception.
+ '-Wno-unused-parameter',
+ ],
},
},
],
diff --git a/aos/externals/seasocks/gen_embedded.py b/aos/externals/seasocks/gen_embedded.py
index 5fc0267..4ebcb2a 100755
--- a/aos/externals/seasocks/gen_embedded.py
+++ b/aos/externals/seasocks/gen_embedded.py
@@ -13,7 +13,7 @@
o = open('embedded.h', 'w')
web = []
-for root, dirs, files in os.walk("./web", topdown=False):
+for root, dirs, files in os.walk("./www_defaults", topdown=False):
for name in files:
web.append(os.path.join(root, name))
for name in dirs:
diff --git a/frc971/http_status/.gitignore b/frc971/http_status/.gitignore
deleted file mode 100644
index 68fbdd8..0000000
--- a/frc971/http_status/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/embedded.h
diff --git a/frc971/http_status/embedded.h b/frc971/http_status/embedded.h
deleted file mode 100644
index 25abefd..0000000
--- a/frc971/http_status/embedded.h
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#include "internal/Embedded.h"
-
-#include <string>
-#include <unordered_map>
-
-namespace {
-
-std::unordered_map<std::string, EmbeddedContent> embedded = {
-{"/_404.png", {"\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\x00\x00\x6b\x00\x00\x00\xc8\x08\x02\x00\x00\x00\x60\x55\x88\x1b\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x20\x00\x49\x44\x41\x54\x78\xda\xec\xbd\x67\x98\x65\xd7\x75\x1d\xb8\xd6\x3e\xe7\xde\xf7\x5e\xa5\xee\xea\x9c\x03\x1a\x8d\x9c\x01\x12\x00\x09\x90\x02\x09\x52\x26\x28\x92\x12\x25\x51\x16\x2d\x0d\x15\x3f\xcf\xd8\x9f\x73\x98\x60\x7b\x3c\x0e\xdf\xcc\xd8\x33\x23\x5b\x63\xd9\xb2\x02\xe5\x4f\x92\x15\x2c\x8a\xe2\x50\x12\x25\x52\x94\x44\x82\x04\x41\x12\x04\x91\xd1\x0d\x34\xd0\x8d\xce\xb1\xba\xba\xe2\x0b\xf7\x9e\xb3\xd7\xfc\xb8\xaf\xaa\xbb\x01\x08\x80\x40\x80\x14\xf5\xe1\x7d\xd5\x95\xba\xde\x0d\xfb\x9e\x73\xf6\xde\x6b\xad\xbd\x0f\xbf\xb0\xed\x4a\x7c\x2b\x5e\x02\x00\x10\x99\x62\x86\x89\xa4\x10\x25\x17\xea\x60\x2d\xaf\x08\x40\x61\xb1\xb0\x4e\x22\x28\xa7\x08\x09\x24\xfe\x62\xbd\xec\x5b\x75\x62\x02\xd0\xd0\x8e\x41\xc1\x69\x08\x30\x79\x21\x04\xa1\xa6\x00\x28\x10\x90\x20\x08\x0e\x41\xfa\x8b\x66\x3e\x00\xf1\x5b\x7b\x7a\x07\x01\x1a\x3c\x08\x60\x12\xdd\x99\x59\x94\x86\xf1\x0c\xd5\x5e\x8d\xd7\x5e\x87\x2c\xd1\x4d\x21\xff\x05\x34\xe0\xb7\xd2\x82\x02\x28\x42\x00\x04\xca\xe9\x90\xb1\x2b\x8d\x6e\xde\xb8\xea\xd6\xdb\xfb\x21\x2f\x7e\xf1\x6b\x7e\xf8\x18\x20\x42\x99\x21\x82\x1c\xfe\x35\xdf\x98\xc5\xc3\x79\x6c\x42\x90\x82\x3c\x08\x92\x25\x14\x68\xad\xe8\xb5\x27\xd7\xfd\xc0\xfb\x37\xbf\xef\x9e\xf9\x5e\x06\x8b\x44\x23\x8c\x32\x31\x00\xf8\x8b\x36\x93\xed\x5b\x39\x02\x29\x93\x04\xd5\x01\x99\x88\x99\x5e\x63\xe4\x92\x9d\x97\x7c\xef\x7b\xa7\xcf\xcc\x3e\xf2\xb9\xfb\x2f\x7b\xdf\xbb\x06\x60\xa6\x65\x58\x91\xd9\xae\xff\x22\xce\xe2\x6f\x8a\x05\x25\x2d\x99\x4d\x43\xcf\x20\x0c\x1d\x6b\x10\x42\x1d\x98\x02\x88\x2c\x39\xc6\x8a\x95\xbb\x36\xae\x5e\x31\xf6\x96\xb7\xbd\x65\xe5\x3b\x6e\xe8\x07\xb5\x12\x9c\xee\xe6\x62\xbe\xe0\x30\xcf\x3f\xec\x5f\xde\x75\x50\x10\x49\x49\x04\x08\x8a\xcd\x4c\xa4\x04\x28\x33\x98\xb3\x4c\x4a\x96\xaa\x22\x17\x8e\xf6\xf1\xb3\x7b\x7e\xfe\x37\x26\xef\xfe\x8e\xf9\xa7\x9e\x29\x8b\x5c\x2a\x07\x29\x11\x39\x54\x95\x22\x60\xcd\x11\x9c\x02\x68\x8d\x11\x9b\xc3\xf2\x2f\xe9\x18\x14\x1b\x47\x81\xe0\xf2\xa1\x49\xe9\xcb\x83\x13\x8a\x4a\xf0\x0c\x06\x11\x31\x63\x71\x7a\x51\x45\xd9\x9e\x5c\xd9\x99\x98\x3c\xfd\xf0\x33\x80\x57\x66\x12\x4d\x35\x10\x1d\xa0\x00\x05\x00\x4e\x23\x1c\x80\xe0\x7f\xc9\x67\x31\x01\x03\xa2\x13\x40\x32\x11\x5a\x3a\xab\x11\xd9\x91\x98\x5c\x99\x83\x64\x73\x49\x63\x77\xde\xbc\xe5\x7d\x77\xf9\x86\xf1\xf6\x25\x5b\x6e\xfc\xd1\x0f\x0d\x12\x72\x8d\x76\xb2\x22\x47\x66\x8a\x0e\x66\xc2\xa3\x3c\x38\x44\x12\xc1\x64\xcd\xc8\xfe\x4b\x3b\x8b\x41\x65\xb0\x8e\x4c\xe6\x85\xbb\x01\x72\xcb\x34\x64\x66\x24\x5f\xbd\x22\x2a\xc2\xf3\xba\x5b\xde\x3c\x7f\xe8\x94\xb5\xe3\x58\x7b\xe4\xc4\xc1\x53\x2b\x56\xad\xc9\x5c\x9c\x7c\xcb\x2d\x65\xe5\x83\xaf\x3d\xda\x45\x20\x7b\x2d\xc5\x32\xf9\x20\xe6\x1c\x9c\x9e\x05\x8b\x1e\xb2\x81\x70\xe1\x5b\x33\x8f\xc3\x8f\xae\x58\xfb\xfa\x0e\x40\x36\x2b\x3d\xdd\x2c\x00\x65\x56\x32\x24\x21\x21\x14\xeb\xd6\xf4\x03\x37\xdd\xf5\xb6\x75\x77\xbd\x75\x66\x7a\x76\xcb\x77\xbe\xa3\xdb\x1d\x2c\x3e\xf4\x64\x35\x48\xa7\xf6\xed\xe3\xc2\xe0\xf0\x17\xef\x5f\x7b\xcd\xd5\xab\xb6\x6f\x3d\xf1\xe8\xde\x4b\x7f\xec\xaf\x75\x73\x5a\x3c\x79\x36\x30\x1a\x51\x05\xa7\x44\x81\xb0\x3a\x80\x12\x89\x6f\x89\x0d\xed\x9b\x30\x04\x9b\xfb\x2a\xb2\x46\x06\x32\x37\xb7\xc2\xd6\xad\x2e\x37\xaf\xdf\xfe\xc1\xf7\x6c\x79\xef\x5f\x39\xb7\x90\x4f\x0d\x06\x61\xf3\x7a\x86\xce\xb6\xdb\xde\x34\x98\x9d\x9f\xdf\xf7\xcc\xd5\xd7\x5f\xc1\x27\x9f\x59\xf8\xea\x63\xad\x50\x4e\x9d\x3a\x55\x6f\x5a\xa3\x9d\xdb\xcb\xc9\x75\x9b\xde\x77\xcf\x8e\x1f\xfa\xfe\xf9\x6e\x3d\x18\xa0\x74\x03\x94\xac\xa2\xfe\x52\xaf\x83\xc3\xcc\x96\x02\x95\x82\x9d\x2d\x98\x3a\xa3\xbb\xde\xfd\xae\x89\x9b\xaf\x7f\x6c\xef\x9e\x6a\xed\xe4\xd6\x6b\xaf\xec\xc8\x56\xad\x5e\x73\xe0\x2b\x0f\xd6\x9d\x30\x7e\xf3\x95\x03\xef\xa7\xf1\xce\xec\xf1\xa3\x1b\xaf\xb8\x14\x2b\x5b\x55\xcc\xbb\xde\x79\x67\xc7\xc5\xf1\xd6\xb9\x91\x78\xc6\x38\x72\xf9\xe5\x97\x7e\xdf\xf7\xcc\x0b\x75\x86\x49\xd1\x9d\x84\xbe\x45\xce\x38\xbe\xd6\x23\x4e\x54\xe3\x7f\x87\xb3\x4a\xc3\xef\x50\xe7\xaa\x58\xb9\xea\xea\xef\xbd\x67\xf6\x5c\xef\xf1\x27\x9e\xda\xf5\xb6\xdb\xae\x8a\x97\xcc\xce\xce\x9c\x3c\xfa\xb4\x9f\x3c\x15\xa6\x16\x17\xcf\x9c\x39\x34\x7d\x6a\xed\x5b\xdf\x94\xfe\xe8\x0b\x65\x55\x20\xa7\x75\x77\xdd\x79\xf8\xf3\xf7\xdb\xa1\x83\x33\x13\x6b\xcf\x3e\x73\xb0\xb3\x71\xf5\xc6\x4b\x2f\x99\x9b\x9e\xc7\xe5\x5b\xb1\x66\x5d\xdc\xb1\x7d\x72\xc3\x9a\x99\x2f\x3f\x58\x9a\x9d\x0f\x3c\xb9\x0c\x5b\x34\x9f\x5e\xf7\x30\x27\xbe\xd6\xe6\x63\x66\x30\x38\x98\x93\x29\x24\x8b\x0a\x15\x65\x01\xe3\x97\x5d\x52\x6f\xd8\xb0\xf7\xa9\xfd\x1b\x6f\xbc\x7e\xf7\xb6\x4d\x67\x66\xa7\xfb\xcf\x1e\x2c\xf6\x1f\xaa\xa6\x8f\xa3\xae\x8b\xd4\x1a\x09\xb6\xf8\xd5\xc7\xae\xf9\x81\xef\x39\xe8\xf9\xd4\x91\x93\xd3\xbd\xc5\x2b\x2e\xd9\x30\xff\x0b\x7b\x56\xcc\xcf\xce\xe2\x74\x2a\x91\x56\xad\x1c\xec\xdb\xef\x3b\xb6\x6c\x7b\xfb\xed\xf5\x91\x99\xf6\x8e\x9d\xab\x76\x6d\x3f\xf4\xc0\x23\xed\x4e\x1c\xeb\x55\x41\xa8\x8d\xe6\x66\x80\xd3\x45\x27\xf8\x4d\x88\x13\xed\x35\x9e\xb0\xa0\x13\x26\xb4\x32\x44\x45\x40\xae\xdc\x2e\xeb\xf5\x6b\xe6\x5a\x1d\x6e\xdb\xb1\xe3\xe6\x5b\x56\xb6\x47\x4e\x3d\xf6\xd8\xfa\x0d\x5b\x27\xd7\x6f\xe8\x9f\x3a\x5d\xd4\x88\x2c\x11\x82\x0a\xb2\xaa\xfa\x07\x8e\x4e\x16\x23\xdb\x57\xad\xb9\xe4\xea\x2b\xcf\x3d\xf6\x18\x52\xaf\x50\x31\x21\x1b\x71\xe5\x53\x53\xb3\x8f\xee\xe9\x1d\x3d\xe1\x83\xc1\x4c\x7f\x6e\xf7\xbb\xde\x76\x6c\xff\xe1\xed\x77\xbe\xed\xf2\xef\xbc\xbb\xb7\xb0\x90\x94\x44\x19\x09\xd1\xc9\x61\x96\xc2\xd7\x3d\xc8\x79\x6d\x7d\x31\x01\x19\x6a\x93\x99\x87\x3a\xc0\x3c\x0d\x62\x1e\x5b\xbd\xf6\x92\x7b\xde\x95\xca\xf1\x1d\x37\x5c\x37\xbf\x7f\xff\x81\x4f\x7c\x4a\x5e\x6f\x7d\xd7\xbb\x27\xaf\xbf\xe1\xdc\xb3\x07\xea\x13\x67\x03\x83\x01\x82\x77\x50\x9c\x9d\x3e\x7b\x36\xa7\x43\x33\xd3\xe7\x66\xa6\xbb\x8f\x3d\x55\xce\xf7\xda\xc9\x7a\xd1\x9c\xb1\xf0\x10\xb6\x6e\xbc\xf6\xef\xfe\x0f\xb2\xe2\xe0\xaf\x7f\x7c\x7e\x66\x6a\xe3\xcd\x37\x0c\x0a\x1c\x3f\x76\x74\xe3\x95\x57\x65\xe6\xea\xdc\x59\x63\x0d\x73\x00\x65\x6e\x06\xc7\xeb\x3e\x0a\x5f\xdb\x59\x0c\x42\x44\x06\x62\x3f\x86\x0c\xa3\x60\x55\x3d\x7d\xf2\xcc\xd4\x17\xbf\xb2\xe3\xc6\xeb\x0f\xfc\xde\x27\x16\x1f\xd9\x1b\x06\x0b\xc5\x96\x89\xba\xe4\xca\x9b\xaf\x6f\x5d\xb6\x63\xf0\xe0\xc3\xa5\x33\xc5\x6c\x8e\x54\xd7\x93\x9b\x36\x5c\xf7\x37\x7f\x24\xb5\x47\x47\x72\x7d\xef\x0f\xfd\xad\x76\xca\x75\xf4\x2a\x58\xc8\x62\xd9\x1a\xb9\xfd\xe6\xd1\x1b\x6e\xea\xee\xdf\x37\x92\x06\xf9\x73\xf7\x1f\x39\x3a\xb5\xfd\x03\xef\x1e\x1f\x1f\x39\xf2\xd9\x2f\xb6\xe6\x06\x85\x9b\x17\x4e\x64\x73\x64\x8b\xe7\x2f\xea\xdb\xc5\x82\x84\x44\x33\xb5\x32\x01\xa4\x76\x2e\xb5\x65\xd3\xba\xef\xb8\xa5\xd5\x6e\xcd\x3e\xf8\xe4\xa9\xdf\xf9\xdd\x80\xda\x6a\xd4\x55\xe6\x40\x6e\x18\xb0\xd2\x68\x7b\x61\xeb\x2a\x5b\x39\x5e\x9f\x3e\xdd\x9a\xed\xd5\xab\x47\x9f\x3e\x7c\x64\x6b\x39\xc2\x55\x93\x47\x1f\x78\xa8\x1f\x6d\x45\x59\xf6\x72\xaf\xdf\x89\xa1\xd3\xee\xd5\xbc\xf4\xa6\x1b\x7a\xa8\x99\xb3\x55\x00\x72\x3e\xf0\xdc\x81\x5f\xfa\x58\x11\x2c\xce\xcd\xf5\x3c\x33\x47\xc2\x11\x55\x28\xf4\x0d\x06\x98\xc0\xd7\xd9\x86\xaf\xf9\x18\x64\x52\x99\xe2\x20\xa8\x42\x39\xb2\xe5\xfb\xbf\x7b\xec\x9e\xb7\xcc\xdd\xfb\xd5\x53\xa7\x3e\x3f\x36\xda\xe9\x77\x3d\x5c\x7e\xc5\xae\x1b\xae\x9d\xee\xf5\xe6\xe7\xfa\x6b\x3d\x4c\xde\x7a\xc7\xd6\x77\xbd\x73\x62\xeb\x86\xfe\x63\x4f\x3d\xfc\xaf\x7f\x6a\xf2\xa6\x2b\x37\xee\xbe\xe2\xc8\x93\xfb\x77\xbf\x7d\xed\x97\x1e\x7e\xe2\x3b\xfe\x8f\x7f\xb2\xef\x3f\xfc\xf2\xe8\x9a\xc9\x37\xff\xc4\x87\x6c\xc5\xaa\x03\x5f\x7b\xac\x5f\x76\x94\xeb\xfa\xc8\xa9\xe3\xe7\x16\xcb\x15\x63\x61\xb1\x3b\x39\x33\x8f\xaa\x2e\x76\xac\xbb\xe4\xfd\xef\xce\x21\x9e\xf8\xcc\x7d\x8b\x07\x0e\x20\x57\x81\x52\x33\x25\xbe\x8d\xa2\x99\x66\xd5\x4e\x64\xe9\xa2\x72\xe5\x83\x13\x4f\x3f\x73\xc5\xdd\x77\xec\x7f\xee\xd4\x55\x3f\xfe\xc3\x07\xff\xf0\x33\xa1\xb0\x5b\xfe\xe7\x7f\x52\xad\x1a\x5f\xa9\x1c\x63\x6b\x71\xa1\x3f\x79\xd3\x4d\x11\xd5\xa2\xac\x75\xfb\xdb\xd7\x7c\xc7\x03\x36\x11\x77\xbc\xe3\xae\x7a\xac\x7c\xee\xc9\xa7\xdf\xf2\x23\xdf\x67\xad\x30\xd7\x59\x71\xed\x8f\x7f\xe4\xdc\xe5\xdb\xa9\x62\xdd\x7b\x37\xe7\x7a\xa1\xdf\xed\xce\x8f\x96\x1f\xf8\xcd\x9f\xad\x63\x3a\xfe\xf9\x2f\x3d\xfd\xcb\xbf\x35\x31\xbe\x72\xa6\x88\x21\xc6\x1b\x7e\xe8\x83\x53\xcf\x1e\xe1\x93\x4f\x5b\x41\x36\x60\xd0\xeb\x1f\x23\xbe\xd6\x63\x50\x2a\x55\x45\x79\xa2\xc5\x94\x7d\x7a\x6a\xa4\x13\xaf\xfb\xf0\xf7\x30\xa5\xb5\x0b\x33\x5e\x28\xaf\x5b\x41\x04\xc2\x06\x85\x7b\xf0\xf6\xb1\xa9\x53\x5f\xfc\xec\xc4\xa6\x4b\xe3\xad\xb7\x55\xa9\xdb\x29\x57\x79\x6b\xac\x18\x6d\xb5\x5b\x23\xb9\x33\x3a\x62\xac\x63\x18\x5d\x37\x3e\xba\xd8\x9d\x7e\xfc\xd9\xb1\xeb\x77\xcf\x8e\xb6\x4a\x4d\xac\xb9\xed\x96\xd3\xea\xb7\xbd\x5c\xfd\x8e\xef\x5c\x7f\xe0\x50\x9d\xea\x6b\xdf\xf3\x81\xaa\x4a\xcf\x7d\xfe\xc1\xd9\xe7\x0e\x5a\x4c\x89\x32\x94\x6a\xa2\x51\xbc\xbe\xd9\xde\x6b\xec\x8b\x09\x45\xf8\x20\xc0\x64\x91\xe5\xe8\xfa\xb5\x47\xe6\xcf\x6d\xbf\xf1\xaa\x90\xbd\xeb\x5e\xe7\xb4\x7a\xfd\xba\xe7\x7e\xf9\x37\x1f\xfa\xb9\xff\xbc\x72\x62\x64\xeb\xd5\x57\x3c\xfe\xd1\x5f\x3c\xf2\xb3\xbf\x70\xee\xf1\xa7\x56\x6d\xdf\x74\xf0\xf7\x3f\xbd\x7e\xb4\x3d\x7d\xe0\xd8\x81\x87\xf7\x5c\x7e\xc7\x1d\xcf\xfe\xc6\x6f\x6f\x58\x3b\x7a\xe8\xf3\x5f\x6e\xad\x59\x71\xe2\x37\x3f\xfe\xec\x47\x7f\x25\xf5\x67\xd7\xdc\x79\xe7\x60\xa1\x5f\x1e\x38\xd8\xdf\xbb\x7f\xcd\xda\x4d\x75\x50\x6f\xea\x6c\x6b\xd3\xb6\xcd\xef\x7d\x67\x87\x1a\xec\xd9\xbf\xf8\xf8\xde\x3c\x77\x16\x01\xf4\x08\x10\x43\x47\xcc\x6f\x93\x59\x2c\x88\x4c\x43\x16\x93\xee\x9e\x67\xe6\x2f\xdb\xb8\xe5\xe9\x3f\xf9\xdc\xf4\xd7\xf6\x5d\x7f\xc7\x9d\xd3\xbd\x3c\xbf\x67\xef\xf4\xa7\x3e\x3d\x7e\xe4\xd0\x99\x95\x1b\xd7\xde\xf0\x16\x56\xb9\x93\x38\x32\x35\xb5\xff\xa7\xfe\xc3\xe8\x99\xd9\xfd\xcf\xee\xeb\x5a\x71\xfd\xff\xf6\xcf\x7d\xac\xd5\x3f\xf8\xdc\x1f\xfc\xcd\x5f\x9b\xec\xc5\x43\x3f\xfd\x9f\x47\xfa\xdd\x56\x5a\x3c\xfa\xe5\x07\x77\x03\x73\x47\xf6\xdf\xff\xd7\xff\x41\x6b\xcd\x2a\xfc\xd3\xbf\x1f\xc6\x4a\x2c\x54\xeb\x77\x5e\xd2\x7d\xe8\xc9\xe3\x07\x9f\xc2\xd1\x83\x2d\xe5\x1a\x61\x89\x54\xf9\x66\x90\x7b\xaf\xe5\x18\x6c\x90\x67\xa7\x45\x77\x99\x27\xf3\x99\xb9\xf9\x33\xbd\xee\xb5\xef\x7f\xcf\xb3\xbf\xf6\xfb\xcf\x7e\xfa\x93\x79\xf1\xdc\xca\x5a\xbd\x27\xf6\x7a\xb7\xee\x6c\xdd\x3d\xfa\xe6\x37\x75\x26\x57\xcc\x3f\x77\xa8\x3e\x3d\x55\xcd\xcc\x78\x5d\xe7\xb2\xdc\xf1\xa1\x0f\x6c\xfc\xd0\xfb\xe6\x3b\x61\xdd\x86\x55\xa7\x3e\xfb\x85\x62\x76\x2e\xce\xcd\xd5\x75\x55\x4f\x4c\x6e\xf9\xbe\xef\x09\xdb\x77\x4c\xdd\x77\x7f\xfe\xec\xe7\x57\xae\x18\x5b\xb1\x7d\xc7\xdc\x03\x8f\x1e\xfd\xd8\xff\x37\xf5\x95\xaf\xcd\x2c\xce\x6f\xbd\x72\xf7\xfc\x97\xbe\x72\xf6\xe9\x27\x42\x88\x65\x2e\x9c\x0e\x8a\xaf\x3f\x47\xff\x5a\x5a\x70\x18\xff\x93\xa5\x3b\x28\x50\x74\x5a\x68\x6f\xfd\xae\x77\x8f\xaf\x9c\x98\x7a\xf8\x6b\xf9\xc8\xd1\x33\x0f\x3e\x62\xee\x69\x6c\x64\xc3\x3d\x77\xad\xbe\xf3\xa6\xb1\xcd\x5b\xc6\xb7\x6e\x9d\x8b\x3e\x13\xe8\xdb\xb6\x6d\xf9\xde\xf7\xef\xfa\xd1\xbf\x96\xca\x8e\x67\x1f\x5b\xbb\x61\x64\xfd\xda\xd3\xbd\xf9\xc4\xb2\x5e\xbb\x76\xfd\x5d\xef\xb8\xfc\x23\x1f\x49\xed\x91\x31\xd7\xd1\x3f\xfe\x02\xab\xc1\xf4\xa3\x7b\xe6\xee\xff\x7a\x89\x41\xd8\xba\xf6\xd2\x8f\x7c\x70\x61\xdf\x73\x67\x3f\xfe\xe9\xb6\x79\x0e\xd1\xc4\xa0\x2c\xe2\x9b\x80\x79\xf1\xb5\x55\x7d\x48\x4a\x81\x65\x52\x8a\x39\xb8\x24\xeb\xaf\x5e\xbf\xeb\xef\xfd\x8d\x1d\x77\xbe\xe5\xf4\x97\x1e\x78\xe6\xd3\x7f\x5c\x9d\x3e\x1d\xc7\x46\xb7\xbc\xe7\xed\xeb\x6e\xbf\xb9\xaa\x32\x7b\x28\xc7\x3a\xed\x55\xa3\xd6\xad\xea\x85\xcc\x2d\xeb\x17\x5a\xe8\x3f\xf9\x2c\xa1\xf1\x1d\x97\xc1\x92\x1f\x3d\x3a\xd2\xe9\x14\x63\xad\x5e\x1a\xcc\xce\xe4\x72\xbc\x13\x98\x4e\xfe\xc1\x9f\x1e\xf8\x6f\x9f\x28\xe6\xce\x8d\x58\xec\x6d\x5f\xbb\xed\xc3\x1f\xdc\x74\xcd\x75\x7b\xff\xef\x9f\x9d\xf9\xcc\xbd\xed\x32\xd6\x21\x07\x35\x41\x20\x1b\x14\xfb\xdb\x0a\x59\x00\x4d\x9e\x82\x99\x1b\xe0\x80\x17\x55\xb5\x78\xf4\xf8\xfc\xda\x89\xe2\x9e\xbb\x6f\xb9\xf3\xad\x0b\x47\x0e\xb6\x57\x4d\xda\xda\x95\x27\xfe\xf0\x8f\x0f\xfd\xd6\xef\x76\xcf\x9c\x9d\xdc\xb1\xf3\xca\xbf\xfd\x63\x73\xd1\x4e\xee\x39\x78\xe5\xf8\x5b\x5a\x6b\x47\xf6\xfd\xde\xa7\x07\x53\x53\xb7\xfc\xd3\xff\xa5\x2a\xed\xbe\x3f\xfa\xd3\xdb\x7e\xf8\x07\x30\x3f\x73\xe2\x63\xbf\x3d\xf5\xd8\xfe\x75\x57\xec\xd8\xf0\xbe\x77\x6d\xf9\xd0\xfb\x57\x5f\xb1\xfb\xf8\xd7\xbf\x32\xba\x7a\xdd\xca\x5b\x6e\x2d\xb6\x6c\x3a\xf9\xb9\x2f\x2d\xee\x3f\xa2\x22\xd4\x21\x16\xee\x85\xa7\x5e\x8c\x14\xf9\xed\x96\x93\x50\x54\x74\x01\xcc\x8c\xc1\x93\xd3\x43\x55\x57\x73\xb3\x83\xfe\xbc\x17\x23\xe7\x16\xe7\xce\xcd\x4c\x4f\x4e\xae\xec\x9c\xeb\x9d\xfe\xd3\x2f\xf5\xef\xbb\xaf\xd3\x09\x47\xf7\x1f\xdc\xf2\xc1\xf7\xae\xbe\xe3\xa6\x8e\x2c\x76\x68\x11\xb5\x92\xb7\xad\xae\x07\x8a\xfe\x8e\x0f\xdc\x55\x17\x71\xfa\xab\x7b\x9e\xfa\xe9\x5f\x5c\xdb\x69\x1f\x7a\xe0\xcb\xc7\x0f\x1f\x7e\xc7\xcf\xfd\xc7\xee\xa5\x3b\x57\x21\x8f\x5c\xb6\xbb\x9e\x58\x5b\x42\x56\x0f\xd4\xeb\x05\xcb\xc1\x51\x24\x73\x2b\x4d\x1a\xae\xcc\xf8\xf6\xc9\x8b\x1b\x77\xec\x54\x99\x39\x88\x46\x46\xa9\xf6\xf1\xce\xf8\xea\xc9\x93\xbf\xfd\x47\x1b\xef\x7e\x5b\xbb\x08\x35\x0a\xcd\x54\x61\xc7\x86\x89\x9b\xae\xd7\xb1\x23\xd0\x60\xd7\xce\xcb\xc6\x76\xee\xe8\xf7\xaa\xfd\x7b\xf6\x5e\xbd\x6e\x4d\xdb\x27\xae\xf8\xf0\xf7\x23\xe6\xce\xe8\x8a\x41\x35\x75\xf0\xf1\xc7\xb7\xdd\xb5\x65\x74\xfd\xba\x2d\x37\x5e\x3f\x7b\xf4\x60\x59\x8c\xae\x18\x9f\xa8\x82\xa7\xca\xe7\x06\x29\xa4\x5c\xf4\xe7\x16\xf6\xef\x4f\xbd\xb9\xd1\xed\x1b\xe7\x4f\x1d\x52\x61\x75\xe8\x24\x16\xe2\x20\x08\x78\xfd\x81\xff\xd7\xd6\x82\xcd\xf3\xb6\x4c\x0f\x12\x41\x47\x51\x15\xd1\x0c\xb3\x4f\x3f\xdb\xbe\x64\xe7\x86\xeb\x2e\xb7\x50\x0c\xce\x9e\x5d\x71\xed\xce\xcb\x7e\xe0\x7b\xd2\x9b\xdf\x3c\x77\xf2\xe8\xe8\xea\x49\x76\x4a\xcd\xf7\x2e\xdb\xb2\x6d\x66\xef\x33\x53\xf5\x53\x99\x12\xfd\x5c\x7d\xbc\xea\x2f\xcc\x1d\x3b\xdb\x7b\xee\xe0\xc8\x86\x95\x3b\x7e\xf4\x87\xa7\x4e\x9c\xe8\xac\x58\xb1\xe1\xce\x9b\xbb\x33\xf3\xf5\xd9\xf9\x30\xb1\xb2\xb3\xa2\x53\x1d\x3d\xf1\xec\xef\x7f\x26\xa6\xc1\xc8\x48\xa7\xc8\xd1\x0b\x66\xcb\xf6\x4d\x24\x40\x5f\xdb\x75\x90\xa4\x28\x4b\xa6\x42\x2e\xd0\x19\xda\xd3\xdd\xee\xd7\x1e\xbb\xf4\xbd\xef\x1c\xb9\x64\x47\x32\x6f\x75\xac\x7f\xee\xf8\xc9\xaf\x7f\x69\x66\x66\x3e\xf4\x34\x19\x8a\xf9\x7d\xcf\xd5\xf5\x33\xc1\x48\x20\xa7\x54\xa7\x94\x21\x4a\x00\x24\xac\x1e\x9f\x98\x7b\xe8\xd1\x19\x92\xa3\x23\x13\x97\x5e\xda\x4d\x98\x3a\xbb\x10\x4f\x2e\xc4\x85\xa4\x36\xd8\x2a\x93\x85\x55\xeb\xd7\x63\xcf\x9e\xb9\x7d\x07\x73\x51\x04\x39\xe5\x0e\x05\x0f\x80\xbe\xcd\x30\xea\x86\x12\x71\x9e\xa7\x46\x0a\xb9\xf7\x7b\x27\xbe\xf6\x50\x1e\x19\x59\xdd\x1e\x9b\xaf\x7b\xad\x94\xdb\xb4\xc1\xb1\x73\x21\xa2\x76\x4f\xab\x56\xc5\xf5\xeb\x02\x64\x45\x1c\x19\x1b\x5f\xb9\x6a\xd2\x82\x21\x86\xa4\x1c\x5c\x4c\xb9\xdf\xed\x9e\x9d\x3d\xd7\xef\xf6\x43\xd6\xc2\xe9\x73\x83\x6e\x6f\xac\x1d\x17\xa7\xcf\xb6\xcb\x56\x91\xe2\xdc\x13\x7b\xd7\x6c\xde\x92\x36\xac\x3a\xfc\x5b\x7b\x07\xc7\x4e\x78\xcb\x8a\x24\x27\xb3\x31\xe6\x26\x25\x79\xdd\x5d\xc9\x6b\x1d\xcd\x40\x92\x81\xee\xf4\x32\xa3\xcc\x5c\x28\xac\x06\x02\x42\xdc\xb5\x75\xf5\xdb\xef\x5c\xf5\x8e\xbb\x8a\xc9\xb5\x23\x2b\x27\x8b\xb1\xb6\xa2\x67\xa2\x96\x44\xb8\xa4\xa1\x12\x44\x92\x9c\xc9\x00\x65\x89\x40\x0c\x11\x2c\x6b\x45\x51\xcc\xb9\xdf\x3f\x77\xe6\xd4\xfc\xd4\xe9\x72\xb6\xeb\xc7\xcf\x54\xc7\xcf\x9c\x7b\xe2\xf1\xea\xeb\x8f\x14\xc1\x9c\xea\x24\xf4\x22\x04\x2b\x33\x41\x7d\x13\x42\xea\xd7\x34\x27\x69\x56\xc1\x25\xa0\x55\x84\x13\x51\x08\x00\x98\xb4\x30\x9f\x5a\x61\x6c\xd3\x86\xf6\xc4\x78\x6b\x72\x65\xab\x33\xea\x51\xc9\x20\x83\x93\x2e\x17\x68\x64\xa0\x05\x5a\x20\x82\x05\x03\x29\x14\x30\x64\xaf\x81\x01\x3d\x51\x75\xd9\x6a\xaf\x5e\xb7\x61\xeb\xce\x75\x1b\x36\xa5\x23\x27\xf6\xff\xc6\x27\x7c\xcf\xbe\x4e\x20\x80\x20\x38\xe1\xa4\xc9\x4c\x6c\xe8\xe4\xd7\x1b\xa0\x79\xcd\x67\x31\x61\xa2\x58\x38\xb2\x61\x10\x51\x3a\x4c\x32\x04\x54\x9c\x7b\xe0\x91\x03\xcf\x1e\x6a\x6f\x58\x6f\xeb\xd6\xe6\x15\x2b\x5b\x5b\x37\x4c\x6c\xd9\x86\xd0\x2a\x3a\x9d\x95\xeb\xd7\x4e\xac\x5c\x69\x65\x6b\x09\xea\xce\xc8\x0e\x17\x0c\x1e\x0d\x06\x66\xa4\x85\x85\x73\x47\x0f\x2e\x2c\xf4\x55\xfb\x89\x93\x53\xd3\x4f\xed\x2b\x8e\x1c\x8a\x73\xa7\x42\xcc\x44\x28\x1c\xb5\xb1\x0e\x2c\x53\xa3\xcf\x6e\x42\xea\x6f\x33\x5f\x0c\x02\x4e\x05\x01\xa0\x09\x41\x4c\x44\x94\x8a\xe4\xb2\x3c\x92\x4d\xc7\xcf\x0c\x8e\x4d\xc9\x98\x02\xab\xd1\x91\xfe\xc8\x98\x42\xcc\x31\x1e\x1d\x1f\x45\xbb\x54\x8c\xde\xa4\x86\x52\x20\x04\x38\x90\x0d\x81\x8c\x0e\xf6\x07\x3e\x7f\xae\xd5\x77\x4f\xb9\x57\xf5\x07\xb3\x73\x9d\x94\x22\x65\x16\x1c\xe6\x04\xb0\xf4\x45\x4b\xf6\x7b\xfd\xb5\x20\xaf\xbd\x6e\xa6\x09\x09\x01\x52\x0c\x99\xa0\x20\x24\x83\xd3\x1d\xb4\x60\x26\x42\x0a\xd9\xc3\xcc\x3c\xce\xcd\x38\xdd\xc9\xda\x90\x9a\x21\x3c\x4c\x23\x38\x5c\x10\x20\x02\x19\xa8\x04\x82\x32\x78\x46\x84\xcc\x34\x62\x46\x23\x14\x20\x66\x22\x93\x85\x23\x0c\xe3\x18\x7d\x53\x38\x92\xd7\xc3\x82\x44\x93\x06\x2c\x5d\x7a\x13\xd4\xd2\x01\x30\x86\xe1\x2d\x0d\x79\x71\x37\x02\x91\x40\x04\x02\x51\x2e\xdf\xf3\xd2\xe7\xe7\x2d\x60\x0d\x6c\x01\xca\x97\x0e\xbf\x0c\x43\x13\x88\x17\xa8\x16\xb8\x84\x56\x7e\x13\x4c\x18\x97\x85\xa0\xaf\xf5\xeb\x05\xc7\xd5\xf3\x7f\xaf\x17\xf9\xdf\xa5\x6f\xf4\x82\x3f\xb8\xe0\xdd\x7a\xd1\x13\xe9\x05\xc7\xf8\xa6\xc8\xe1\xbe\x85\x4a\xf4\xbf\x24\xaf\x48\xf2\x0d\x2b\xbc\x31\x06\xdf\xb0\xe0\x1b\x16\x7c\xc3\x82\x6f\xbc\xde\xb0\xe0\x1b\x16\x7c\xc3\x82\x6f\x58\xf0\x8d\xd7\x1b\x16\xfc\x96\xe5\x24\xaf\x20\xbd\x6d\xea\xa2\x9b\x7a\xd6\xf3\xd9\xe7\x10\x75\x19\xfe\x15\x49\x48\x1a\x2a\x7d\x74\x01\xae\x30\x94\xd4\x2f\x7d\x77\xc1\x57\x60\x58\xa8\xf8\x22\x67\x7d\x1e\x36\xa1\x3f\x87\x80\x68\x48\x71\xa2\x91\x84\x62\xf9\x07\x6a\x78\x1d\x43\xec\x6b\x19\xb9\xd1\x85\x97\xb4\x24\xbc\xb8\xf0\x0a\x5e\x92\x6c\x89\x2f\x7b\x39\x6c\x6a\x87\x1a\x93\x2d\x9b\x68\xc9\x88\x4b\xa7\x74\x08\xa4\x35\xc5\x10\x0d\x5c\x0f\xc0\x20\x3a\x40\xcb\x43\xd4\x6a\x09\xbd\xba\xe0\xe2\x5e\xf4\xb4\x6c\x04\xb1\x0d\x48\xd6\xd8\xe2\xcf\x80\x1a\x5e\xec\xbd\xd0\x12\xd3\xde\x3c\xbe\xa6\x40\x43\xc3\xca\x52\xa2\x01\xc0\xf8\x7c\xa3\x2d\xfd\x82\x5a\xaa\xa5\x68\x34\x04\x2f\xcd\x56\xd9\xcb\x0c\x40\x0e\x21\x24\x0c\x8b\x82\x09\x99\xb9\x99\xe8\x14\x44\x53\x10\x90\xe9\x62\x86\x64\x88\x54\x00\x0c\xa0\x53\x82\x82\x48\x6f\xe0\xf6\x66\xd4\x0a\x24\x64\x94\x99\xc8\x46\x5f\x73\xf1\x07\x00\xc0\x9b\xa7\xe7\x52\x70\xd0\x29\xc0\xf9\x22\x7f\xac\x25\x28\x5a\x5c\xfa\x5e\x00\xe8\xcd\xa0\x33\x8a\x0c\xde\xdc\x8a\x82\x53\xb2\x8b\x05\xfe\xcd\x7d\x0d\x7f\x97\xa9\xe0\x30\xd1\x69\x02\xdc\xfc\xcf\x7a\xc6\xaf\x68\x0c\x2e\xbd\xd5\x4c\x80\x9a\x23\x9a\x1b\xa3\x7b\x90\xbb\x65\x10\xf2\x20\x44\x02\x8e\x44\x78\xf0\x64\x30\x38\x4d\xac\x8d\x32\xb8\x0d\x47\x01\x60\x74\x18\x98\x68\x1e\x68\xf2\xe8\x32\xc7\x8b\x41\x1b\xcc\x48\x6e\x04\x24\x79\xf0\xc6\x3c\xa4\x68\x7f\xf6\x60\xd0\x12\xa4\x65\xb0\x46\x78\x69\xae\xda\x20\x83\x05\x89\xd9\x04\xd0\x73\x64\x70\x3b\x7f\x7b\xb4\x25\xc4\x4c\xd9\x94\x1b\x80\x5d\x06\x85\xe0\x21\x38\xdd\x96\xe7\x38\xff\xdc\x16\x5c\x62\x2f\x9d\x90\x92\xd7\xd9\xb3\x31\x9b\xa8\x5c\xb8\xb7\xb2\xe5\x82\x82\x4a\xa7\x33\x64\x4a\xee\x8b\x75\x1f\x54\x91\xcd\xcd\x9c\xa4\x30\x40\x1d\x0d\xa1\x88\xce\x60\x49\xfd\x9c\x9d\x48\x06\x30\x07\xb9\xb9\x01\xc6\x17\x3c\x39\xc1\x24\xb9\xa9\x53\x84\x3a\xb8\xb9\x50\x5b\x4a\xd9\x5f\x49\xbf\x8f\x46\x3f\x4d\x74\xac\x74\x30\xbb\x0f\xa0\x2a\xa5\x22\xc9\xa0\x41\x46\x54\x38\x3f\x7f\x97\x4c\x69\x60\x61\xc1\x02\x64\x4a\xc1\x4d\x34\x0f\x62\x41\x65\xd1\xf9\x6a\x3d\x49\xc3\x39\xb8\x1b\x47\xaf\xb9\xbc\x73\xc9\x8e\x66\x61\x10\x3c\x98\xd5\x4f\x3e\x33\x7d\xec\x68\x51\xe5\xa0\x2c\xb3\xda\xa1\xd5\x6b\x57\xdd\x7e\x03\xa3\x9b\x07\xb9\x99\x42\x90\xe7\x22\x15\x0b\x8b\xf3\x0f\x3c\xba\xd0\x5d\x68\x5f\xb2\x7d\xd5\xb5\x57\xca\x9b\x15\xd1\x09\x09\xf6\xa2\x54\x9a\x39\x29\xf8\xa0\x37\xfd\xd5\xaf\xfb\x60\x5e\x66\xa3\x3b\xb6\x8c\x5f\x7b\x4d\x65\x19\x2f\xb4\x37\x2f\x70\x22\x80\xe0\x81\xf4\x5e\x7f\xe1\x81\x47\x7c\x71\xc1\x1d\xed\x9d\xdb\x27\x2f\xdf\x15\x19\x0c\xcc\xe6\xa6\x30\x24\x63\x9a\x85\x8a\x74\xf7\xde\xfc\x62\xef\xf0\x89\xfa\xe8\xc9\x58\x0d\xac\x05\x53\x82\xc1\x5f\x81\xec\xe6\xa5\x67\xb1\x48\xd2\x31\x50\x1c\x7d\xfb\x5b\x37\xfe\xe0\x07\x7a\x29\xc7\x4c\x01\x9d\xa2\x7d\xf8\x17\x7f\xa5\xfe\xdd\xa9\x90\x66\xc1\x4c\x0f\x0b\xa3\xa3\x37\xfe\x8d\x1f\x6d\xdd\x79\xb3\x42\xa8\x69\xc1\x43\xc8\xf4\xd2\x3b\xbd\x85\x23\xbf\xf2\xc9\x85\xea\x71\x47\x11\xaf\xbb\x66\xdb\x3f\xfc\xeb\x8b\x55\xb6\xe1\xea\xbe\xd4\x2d\xe5\x05\x0f\x4e\x56\x47\x29\x9c\x99\x3a\xfe\xd4\x33\xed\x93\x5d\x58\xd4\xb5\x97\x6d\xfa\xc7\x3f\xd1\x4d\x76\xd1\x1d\x71\x79\x05\x13\xc5\xe1\x63\xa1\xb7\xc8\x7a\xea\xec\x99\xc3\x47\xfd\xc0\x82\x1c\xab\x6f\xb8\x7a\xeb\x8f\xfe\x40\xdd\x19\xcb\xb0\x28\x77\xd8\xd2\x3b\xb9\xb4\xc2\x7b\x1e\xf4\x39\x75\xa6\x7e\x6c\xff\xd1\x3f\xfc\x93\xde\xde\x3d\x23\xa6\xc4\xaa\xa9\xe7\x79\x69\xca\xf9\xa5\x67\x31\x21\x89\x4a\x96\xb1\x72\x94\x5b\x37\xa8\x9f\xac\x46\x36\x53\xbb\x13\x3b\x63\x11\x96\xa5\x1e\xb9\x10\xc2\xd5\x3f\xf6\x43\x93\xef\x7d\x67\xee\x8c\xd2\xc1\x82\x66\x46\xa5\x76\x6f\xf1\xf8\xef\xfc\xe1\x99\x3f\xfc\x02\xaa\x1e\xa2\xfb\x58\x9b\x5b\x36\x78\xaf\x8e\x4e\x82\xb5\x05\xca\x6d\xd8\x48\xe0\x82\xa5\x03\xc8\xe6\x41\x88\x32\x63\x24\xe0\x86\xdc\x19\xb1\x8d\x1b\xad\xe6\x45\x2b\x3b\x87\x4f\x1a\x52\x90\x2d\x45\x0a\xb9\x68\x02\x9a\x18\xcd\xc1\x6c\xd6\x19\xc5\xc6\x8d\xde\x59\x29\x90\x9e\x1a\x37\xb3\xb4\x5c\x34\x2b\x28\x0b\x2a\xee\xda\xd2\xba\xee\xea\x9d\x57\xed\x3a\xf2\xf3\xbf\x32\xf7\xd5\xaf\xc4\x16\xa5\x1c\x15\xf8\x92\xa4\x69\x7c\x05\xab\x8a\x13\xc6\x0c\x25\x21\xcb\x95\x5d\x60\x8e\xe6\x7d\x63\x6a\xa9\x98\xea\x0f\x76\xff\xf8\x5f\x5d\xf7\xdd\xf7\x0c\xc6\xc6\x2c\x39\xc1\xe0\x9e\x72\x7f\x65\x5d\x3f\xfb\xd1\xdf\x3c\xfd\x6b\x9f\x2c\x67\xa6\xbd\xf0\x8a\x31\x66\x20\x83\x59\x52\x76\x42\x9e\x9b\x05\x6b\xa8\xf3\xbb\xc0\x7d\x51\xa5\x39\x0c\xb1\x70\x39\x33\xc0\x90\x61\xb5\x98\x2f\xe8\x98\x42\x1b\x3a\xb9\x26\x30\x75\x27\x08\x23\x1b\x47\x00\x2f\xbc\x69\x2c\xe2\x4e\xf7\xac\x58\x79\x36\x99\x57\x30\x83\x81\x45\x21\x41\x12\xdc\xe1\x19\x52\x0d\xa4\xb2\x3d\x7a\xfb\x4d\xeb\x4f\x9d\x9c\x3d\xf4\x9c\x9f\x99\x2a\x19\x21\xca\x5e\x4a\xfa\xf0\x4a\xb8\x3a\x0b\x1e\x82\x1b\x3d\xd0\x5d\x92\xc9\x4d\x5e\x95\xd9\xb2\xf7\xba\xbe\xed\xfb\xde\xbf\xe9\xc3\x1f\x1c\xac\x5d\x53\x49\x34\x09\xa5\xd0\x5b\x5d\xd7\x47\x7f\xf3\x93\x47\xfe\xeb\x27\x46\x17\x17\x73\x61\x41\x08\x1e\x82\x07\x7a\x80\xcc\x41\x53\x2e\x20\xce\xcc\xf3\xdc\x6c\x99\x32\xe0\x79\x59\x79\x0f\x12\x16\x72\xd6\xfc\x39\xaf\xfb\x86\x00\x30\x78\x36\x01\x40\x26\x33\x11\xe5\xec\x2e\xc4\xd3\xe7\x42\xae\xa9\x0c\x1a\x64\x26\x73\xaa\xb6\x4c\xd2\x4e\x9d\x8b\xbd\xaa\x86\xb2\xb9\x37\xf1\x3e\x12\xe1\xd9\x5c\x4e\x5b\xec\xce\xdf\xf7\x10\x4b\x15\x63\x9d\x89\x5d\x3b\xf3\xda\xd5\xfd\x24\xd2\x0a\x67\x0e\x18\xbb\xe9\xca\x15\xd7\x5e\x39\xff\xe9\x2f\x16\x11\xd9\xe4\xc2\x4b\x44\x84\xf1\x65\xc6\xdf\x30\xd4\xf2\xe1\x0a\x03\x17\xd8\x04\x0b\x59\x1c\xf4\x35\x79\xe7\xed\x5b\x7f\xf2\x07\xd3\x86\xb5\x74\x32\x20\x38\x48\x1f\x25\x4e\xfd\xc6\x27\xf7\x7d\xf4\xbf\x8e\x2c\x2c\x96\x62\x6d\xa6\x66\x41\xb0\x2c\x13\xa9\x26\x15\x29\x8a\xe2\xd8\xfd\x5f\x3d\xf4\xeb\xbf\x1d\xce\xcc\xc4\x80\x2a\x38\x80\x20\xa3\x0c\x72\xa3\x65\xf5\x5a\x33\xf3\x96\xcb\x41\x94\xe8\x82\x05\x59\x26\x1c\x2a\x1c\xe7\x1e\xdf\xb3\xf7\xa7\x7e\x31\xcc\x4d\xb7\xa0\x14\x2c\x31\xc4\x0c\x83\xaa\x42\x70\x6f\x25\x86\x33\x73\x81\x5e\xd1\xcd\x23\x3d\x64\x3a\x28\xa8\x10\x9d\x67\x4e\x3f\xfb\xaf\x7e\xaa\x2c\x53\x8e\xcc\xbb\x2e\xbd\xf1\x1f\xfe\xad\xe2\xf2\x9d\xa9\xf6\x6c\x9e\x90\x5b\xeb\x26\xc7\x37\x6d\xec\x59\xac\x2d\x83\xf6\xd2\xbe\xe4\x15\xf8\xe2\x8b\x7e\x5a\x4a\xed\x80\x3a\x1b\xae\xda\x7d\xf9\xdf\xfd\xc8\xc2\xce\x0d\x06\xc6\x8c\x32\x7b\x70\x8d\x54\xf3\xc7\x3f\xfe\x07\x4f\xfe\xfc\xaf\x8f\xf4\xbb\x0c\xf4\x2c\x80\xb5\xe1\x62\x42\x73\xa8\x67\x29\xe7\xe7\x8b\x63\x27\x8a\xa9\xd9\x48\xb7\x90\x4d\x0c\x4e\xc8\x32\x4d\x56\x04\x74\x3b\xd9\x12\x5b\xcd\xe9\x1d\x56\x33\x98\xab\xa0\x47\xa0\xd3\xaf\xc3\xa1\x53\xa3\x0b\xb3\xc1\x14\xc9\xcc\x40\x21\xb8\xb7\x20\x18\x04\xa7\x02\xed\xf9\xd1\x99\xc4\x08\x2f\xeb\xaa\x3b\x3b\x15\x8b\xaa\xac\x4d\xb3\x3a\xf5\xa9\xcf\x6f\xbf\x62\x67\x22\xcd\x29\x84\x18\xda\x9d\x91\x31\xc6\x50\x87\x64\x74\x73\x7b\x89\xb4\xe4\x55\x32\xee\xd9\xdd\x37\x6e\xbc\xe1\x1f\xdd\x9e\x2f\xdb\x9e\x43\xcb\x92\xd1\x55\x47\xb5\xe1\x87\x7e\xff\x53\x47\x7e\xf6\x57\x27\xbb\xbd\x44\x27\x91\xcd\xcc\x35\x0c\x5c\x5e\xf0\x84\xba\x16\xa6\x62\x44\xb0\x60\xe6\x21\x50\x8c\x0e\x07\xeb\x80\xda\xab\x0d\x16\x5b\x72\xc9\x87\x09\x22\x20\xc8\x00\x03\x92\x69\xde\x70\xa6\x6d\x67\x07\x28\xcc\x08\x3a\xe5\xb0\xe0\x56\x48\xa6\x3c\x02\xb6\x69\x7c\x91\x24\xac\x19\xe1\xb0\x10\x02\x42\x36\xe5\xc0\xae\x27\x0b\x45\xca\x83\x32\x23\x26\xa3\xd8\xa3\x86\x7a\x8b\x97\x8b\x3f\x5f\x99\x05\x2f\x68\xd2\xd4\xe8\x31\x06\x75\x7d\xc9\x77\xbd\x0b\xd1\xdc\x8a\x4e\x45\x80\x29\x42\x64\x6d\x7a\xfa\x73\xf7\x8e\x2c\xce\x15\xf2\x3a\xa6\xcc\x58\x3a\x82\x10\x5c\xe9\x62\x03\x52\x1c\x54\x83\xad\xef\xb9\xfb\xb2\xdb\xde\x52\xa6\xec\x94\x9b\xe8\x8d\xf2\x86\x86\x14\xa1\x2f\xfe\xb3\x7f\xbd\xf8\xc4\xbe\x96\x03\x14\x95\x0d\x6e\xee\xc9\x10\xa5\x9a\xb6\xf6\x4d\x37\xfd\xd5\x5f\xfe\x4f\x40\x32\xc9\x87\xb9\x2f\x05\x92\x28\x06\xfd\x07\xfe\xdd\xcf\x2d\x7c\xe5\x91\x96\x5f\x94\x5d\x35\xcb\x61\x25\x93\x15\x73\xad\x51\x8b\xed\xba\xd3\xea\xdc\x7c\xc3\xce\x1f\xf8\xae\xee\xa0\x76\x22\x11\x16\xa0\x85\x5e\x77\x76\xae\x4e\x69\x24\xe0\x1b\x8a\x07\x9f\x37\x83\x79\x51\x00\x81\x7e\xa7\x5d\xb8\x4c\x16\xc4\x64\x00\x14\x1d\xfd\x68\x6f\xfd\xc8\x87\xbe\xf6\xc8\xfe\x6a\x61\x21\x32\x66\x5f\xca\xaa\x5f\x70\x19\x24\x1c\xe8\x8e\x8f\xa4\xd1\x91\x58\xbb\x47\x56\x11\x96\x05\x20\x19\x63\xd6\x4a\x20\x97\x63\x60\xa0\xd4\xa0\x1b\x4e\x11\x39\x19\x63\xa2\x65\x56\xed\x91\x99\x6d\x1d\x37\x0f\x19\x0e\xba\x79\x70\xcb\x08\x39\xfa\x44\xbf\xab\x72\xcc\x5e\x30\x7e\xdc\x45\xa3\xab\x68\x6f\xdc\xfc\x57\xfe\xd3\xbf\x29\x0a\x84\xd1\x8e\x6f\xde\xd0\x1d\x1b\x57\xad\xd2\x4c\xf4\x2a\x2a\x1c\x3b\x91\xf7\x1d\x2a\x94\x0d\x26\x35\xf9\xe4\xab\xf4\x24\x2f\x65\xd0\xd0\xe4\xf1\xf2\x7e\x04\xc8\x32\x23\x13\x74\x2b\x6e\xba\x7e\xed\x77\xbf\xfb\xec\x7f\xfb\xbd\xd1\xaa\x56\x04\x1d\x89\xe6\xf4\x17\x45\x56\x02\x68\x74\x46\x38\xdd\x1c\xcd\x6a\x69\x52\x54\x14\xbc\x1c\x78\xce\x18\x36\x0f\x95\x09\xe6\x66\x30\x04\x00\x52\xce\xd9\xcc\x2c\x93\x39\xe4\x88\xe0\x32\x99\x23\x04\x04\x17\x4a\xf7\xc1\x0b\x4e\x48\x23\x25\x41\xb9\xd5\xe2\x2d\xd7\xf4\x90\x23\x42\x82\xbc\xce\x05\x22\x3d\x43\xb9\xcc\x83\x93\xf7\x3d\xd0\x7d\xf8\x89\x56\xb4\x64\xb2\x6f\x24\xa2\x3e\x3f\xfa\x96\xfe\x5d\x94\xba\x36\x51\xab\xa9\x99\x7f\xc9\xcc\xc1\x56\x66\x6d\xe3\x97\x7f\xe4\xaf\xfe\xd1\x17\xbe\x3c\x72\xf4\x74\xf4\xe4\x44\x6d\x0c\xfe\xfc\x6e\x26\xcd\xec\x08\x55\xd5\xaa\x52\xc8\x1e\x48\x90\x31\x83\x82\x4c\x52\x15\xa2\xca\x54\x75\x55\x27\x63\xb6\x00\x59\x50\x21\x26\xaa\x69\xbc\xa2\x90\x73\x6b\xbe\x2e\x1d\x8d\xf4\x2b\x7a\x6e\x04\x9b\x24\x62\xbd\x20\x2d\x82\xf9\xa2\xa7\xd6\xdc\x86\x50\x5a\x33\x90\xa1\x50\x54\x40\x91\x92\x05\xc1\x6b\x89\xad\xfe\x60\xfa\x4f\xee\x3d\xfc\xb1\xdf\x2f\xeb\xbe\x8a\x21\x9e\xf2\xd2\xaa\x8e\x3f\xc7\x18\xd4\x45\x93\x51\x99\x68\x21\xc6\xb4\xd8\x7f\xe2\xc9\x91\xcb\xae\xe8\x8e\xad\x88\x39\x27\x66\x83\x55\xab\xd7\x5d\xf7\xd7\x7f\x6c\xcf\xbf\xfa\xbf\xd6\x0d\x52\x4d\x88\x46\xcf\x8a\xba\x00\x30\x85\x03\xad\xa2\x38\x76\xef\x97\x0e\x7f\xe2\x0f\xe2\xd9\x79\x45\xa6\xa0\x56\x42\x74\x56\x81\x99\xd9\x8c\xad\x83\x87\x0c\x84\x72\xc8\xa1\x8e\x26\x0e\xb8\xe4\x8f\x02\x70\xee\xc9\xbd\x07\x7e\xee\xd7\xb1\x38\x67\x46\x08\x41\x72\x36\x3d\xce\x10\x42\xf2\x03\x87\x4d\xbe\xbc\x70\x37\x62\x44\x82\x04\x2d\x17\xce\x34\x3a\x33\x57\x05\xeb\x05\x04\x79\x99\x14\xe6\xe7\xab\x23\xc7\x9f\xf9\xfc\x17\x8f\x7c\xe6\xde\x89\xd9\x79\x15\x4d\x28\x3d\x44\x68\xf9\x9a\x58\xf0\x79\x87\x89\x84\x79\x9a\xfd\xf4\x17\xbf\xf0\x33\x3f\x73\xd7\x3f\xfd\x1f\xe3\xed\x6f\x29\xc5\x6e\x1b\x96\x30\x60\x5c\x7f\xc7\x6d\xa7\xef\xb8\x75\xf1\x4f\xbe\x58\x00\x48\x35\xc2\x45\x0b\x49\xb3\x40\x99\x59\x3c\x39\x55\x3e\xbc\x77\xf4\xd4\x39\x0f\x1a\x44\x2f\x33\x62\x0e\x0c\x08\xac\x12\x42\xb4\x96\x53\x06\x85\xcc\x9a\x04\x13\x20\x21\x38\x10\xa1\xf2\xdc\x6c\xf9\xb5\x27\x6c\x71\xca\xcc\x78\xfe\x46\xb8\x9c\x07\xe4\x26\x94\x93\x1b\x21\x5e\xa0\xeb\x57\xb6\x33\x53\x5f\xf9\x17\xff\x67\x2b\x96\x8e\x40\xcb\x3e\x5f\xcd\x9d\x3b\x56\x1d\x3f\xdd\xee\xd6\x6b\x2c\x80\x9e\xc9\xa6\x3d\xf1\x37\x8e\xf2\xff\x19\xc6\x24\x63\x5d\x2d\x7e\xe1\xab\xcf\xfc\xfb\x5f\xd8\x78\x6a\xf6\xa9\x8f\xfe\xea\xf5\xd7\x5c\xce\x91\xd5\x74\x87\x07\x2f\x54\xad\x1c\xb9\xfa\x47\x3e\xfc\x85\x87\xf7\x4c\xcc\x4c\xb7\xe9\x49\xd4\x8b\xa2\xb9\x72\xa7\xfa\x14\x0c\xb5\xb1\x69\x84\x57\x1b\x5d\xac\x63\xe8\x9b\x47\xa1\xf4\xa6\x03\x0b\xcd\x83\x79\x93\x05\xc2\x0d\x29\x60\x31\xa2\x65\x16\x8d\x17\x21\xa6\xc3\xaf\x89\x28\x1a\x3f\xe6\x3a\x0f\x66\x89\xf0\x98\x6c\x61\xfa\xcc\x7d\xf7\x6d\x52\x19\x1c\x89\x0e\xc4\x76\x99\x5b\x2c\xdb\x56\x58\x76\x04\xe6\xa6\xe7\xdf\x32\x61\xf0\xda\x5a\x50\x60\x11\xe2\xfc\xd7\x1e\x79\xfa\xff\xfd\x85\xce\x99\x53\x25\x75\xf6\xb1\x27\x16\xee\xfd\xf2\xba\x7b\xbe\xcb\xdc\x20\xf3\x90\xba\xe2\xc4\x65\xbb\x77\x7e\xe8\x7b\x8e\xfc\xfc\x47\xc7\x3d\x45\x8b\xf5\x0b\x2e\xc5\x25\x5b\xb5\x82\x97\x6c\xc2\xaa\x09\x11\x0c\x82\x20\x27\x8d\x31\x19\x68\xc9\x64\xa7\x4e\xdb\xdc\xdc\x10\x9b\x37\xb9\x0f\xf1\x03\xba\xc5\xce\x78\xfb\x92\x5d\xc5\xc2\x1a\x46\xcf\x2f\xb8\x51\x23\xfd\xf8\x74\x5a\xac\xc1\xf3\xd9\x62\x13\x45\x45\x8f\xae\xd8\x0a\x91\xc3\x1a\x02\x44\x0f\x2d\x09\x9e\x63\x06\x89\x3c\x04\x88\x48\x6f\x98\x81\x97\xf2\x25\xaf\x72\x0c\x16\x21\x4e\x7f\xe9\xd1\xe2\xc4\x69\x59\x5a\x0c\xa1\x54\x3e\xf4\x6b\x9f\x5c\x7d\xc7\xdb\x6c\xf5\x04\x08\xba\x93\x21\xb5\xda\x9b\xdf\xff\xee\xa9\x07\xbe\x3c\x78\xf0\x91\xf6\x0b\x08\x05\x02\x55\x5d\x8f\xdf\x7e\xeb\x0d\x57\x5c\x59\x56\xa9\x81\x88\x6d\xf8\xdc\x41\x99\x5c\x6d\xe5\x47\xff\x9f\x9f\xe9\x3d\xf0\x10\x41\x93\xc0\x2c\xca\x64\x02\xfa\x16\xda\x57\x5e\xf9\xa6\xff\xf5\x1f\xd3\x52\x6e\xe0\xfd\x8b\x97\xab\x76\xab\xf3\xc4\x3f\xff\x37\x0b\x0f\x7d\x1d\xe7\x41\x98\xe1\xe3\x97\x4a\x7a\x41\x8f\x18\x0e\x67\xca\x4b\x41\xc6\xec\xc1\x9a\xf5\x52\x6a\x96\x00\xbe\xac\x90\x33\xbe\xca\x58\x46\xe8\x00\xb3\x66\xde\xb8\x94\x1c\x17\x9f\xde\x7f\xe2\xde\x2f\xac\xff\xc0\x7b\x7a\x81\x31\x37\xc1\x07\xb5\x7e\xed\xae\x1f\xfe\xfe\xc7\xf6\x1e\xb0\x41\xff\x85\xc1\xbd\xa4\xbc\x72\xd2\x27\xd7\x34\xb3\xac\x01\x82\x9b\xc8\xb8\x36\x9a\xbc\x55\x0d\xea\xf1\xb1\x61\xc3\x47\x22\x53\x6e\x8a\x59\x0d\x0d\xe2\x63\x63\x76\xc5\x78\x15\x21\xa0\xf4\x8b\x80\x46\x11\xad\x76\x27\x8f\x8e\xbe\xd0\x05\x38\x54\x05\x8f\x21\x2f\xf3\x4d\x22\xdc\x6a\x31\x67\x36\x54\x5a\xd3\x34\x8c\x4b\x4a\xf8\xd7\x88\x2f\x16\x21\x9a\x8c\xa0\x89\x84\xa1\x8e\x9e\xcd\xdc\x58\x66\x45\xc5\xd2\xea\xc3\xbf\xf1\x31\x9e\x3e\x83\xe0\x64\x24\x4d\xcc\x75\x59\x94\x6f\xbe\x69\xe3\x3d\x77\x77\x87\x2c\x29\x61\x4d\xad\xc7\x90\xf9\x08\xee\x21\x57\x9e\x2b\xf7\x1a\xb9\x96\xd7\xae\x8a\xb9\xb6\xe4\xc8\xaa\xe5\x74\xc5\xa5\x5c\x28\x5b\xf0\x10\x1a\xd7\x1a\x84\x20\x65\xcf\x48\x8e\x9c\xb3\xd7\xd9\xab\x0b\x3e\x6a\xf7\x1a\xf0\x06\xc1\x6d\x48\x9a\x21\xd1\x62\xa0\xd5\x30\x27\x5c\x44\x32\x65\x73\x31\x11\xcb\xa1\x8f\x0d\x87\x3c\x94\xcd\x33\x35\xec\x6d\xf8\xaa\xf9\x62\x80\xa2\x15\x29\x8f\xf5\x07\xa1\xaa\x28\x33\xe4\x16\xeb\xc2\x07\xd1\x95\x86\x10\xa2\x5a\x11\xdd\xfd\xfb\x4f\xfe\xf1\xbd\x5b\x7e\xf0\xfd\x09\xa5\x09\x60\x76\x92\xed\xd1\xdd\xef\xbb\xbb\xfb\xe0\xd7\xbb\x47\x8e\x47\xf7\x91\xc1\x40\x55\x25\xd0\xe4\x84\xa8\x04\xc8\x79\x11\xc7\x18\xc4\xa0\x94\x95\xdb\xac\x03\xd2\x80\xee\x0a\x85\x6b\x64\x90\x90\x55\x64\x88\xcc\xc3\x7a\x1b\xb1\x99\x74\x2f\x88\x15\x3a\x16\x82\x7b\x43\xe6\x45\xcf\x9d\x41\x6d\xc5\xb0\xaf\x75\x50\x62\x3f\x1b\x82\x79\x8c\xc8\x94\x17\x99\x24\xd3\xd0\xff\x36\xd0\x51\x93\x05\x9d\x27\x0f\xbf\x91\x59\x4c\x13\x67\xef\x7f\xf0\x70\xb7\xdb\xa5\x4b\x66\x52\x69\x61\xf1\xeb\x8f\x31\xd5\x0d\xdb\xa9\x80\x9c\x11\x03\x8f\x7f\xec\x13\x9a\x9f\xa9\x19\x96\xe9\x74\x8a\xd6\xed\x95\x9d\xd1\xbe\x6c\x71\xef\x53\x07\xff\xe3\x2f\xf6\x94\x1d\x66\x92\x0d\xeb\x3f\xf9\xbc\x28\x87\x50\xf4\x90\x98\x22\xd2\xe0\xd0\x61\x8a\xed\xac\xc5\xa7\x9f\x7e\xee\x3f\xff\x52\xed\x61\x09\x78\x1f\x06\x26\x17\x50\xe3\x17\x1d\xa7\x08\x71\x70\xe8\xa8\x65\x16\xa1\x5c\x7c\x7c\xcf\x91\x5f\xfa\xaf\xfd\x4e\x84\x2c\x88\x84\x17\x53\xb3\xd1\x42\x33\x5b\x1b\xea\x8e\x0a\x58\x22\xb3\x97\x19\x4e\x13\x5f\xb6\x2c\xe5\xa5\xea\xea\x1a\x7a\x58\xa2\x93\x09\xaa\x89\xc4\x20\xc0\x1c\x41\x2a\x98\xa3\xd1\x44\x64\xa7\xd1\x25\x27\x5c\xaa\x1a\x80\x6a\xf9\x11\x09\x06\x16\xb4\xe0\xa9\x32\x56\x50\x03\x43\x5d\xc8\x0d\xbf\xc8\x65\xc9\x72\x70\x30\xb7\xa4\x4e\x86\x09\x5d\x78\x0e\x21\xcb\x5e\x71\x81\x83\x4a\x7a\xe1\x0a\x60\x22\xfb\x50\x65\x0c\xb2\xe8\xe8\x16\x6a\x27\x8d\xc2\xe8\x39\x47\x65\x92\x52\x68\x5c\xee\x05\x0f\x62\x59\x4f\xf1\xea\x35\x0b\xcd\x50\x76\xba\x43\x85\xd8\x69\xca\x61\x38\xc4\x6c\x9d\x44\x5e\x1a\x00\x2e\x33\x12\x30\xb2\x9d\x1d\x6c\x08\x73\x40\x08\x20\x25\x47\xae\x83\x9b\x30\x06\x0b\x29\x37\x7d\xa4\xb3\x3d\x3f\x86\xbb\x20\x7f\x75\xd5\x4e\x43\xb2\xdc\x2f\x04\x67\xe9\x16\x33\x72\x73\xca\x57\xe6\xee\x9c\x32\x82\xee\x11\xd6\x22\x0a\x28\x48\xd1\x51\x24\x2b\x80\x90\x92\x9a\x32\xa0\xa1\x16\x00\x7c\x1e\x77\xcd\x0b\xf8\xa2\x57\x3f\x8b\x89\xa6\x73\x8b\x09\x4d\x92\x94\xa9\xa6\x6f\x2c\x61\x04\xa8\x0b\x34\x32\x8d\xeb\x6f\x24\x1f\x06\x01\x46\x66\xcf\x24\x09\x14\x3e\x9c\x7f\xa4\x9a\x55\x26\x87\x25\x8d\xc5\x0b\xce\xea\x08\x11\x88\xee\x4d\x5e\xda\x6c\x60\x92\x0d\x4e\xd7\x2b\xd5\x7e\xd0\x44\x13\x0d\xcc\x02\xad\x91\x5f\xc8\x03\xc9\xec\x12\x9a\xda\x35\x59\x21\x04\x07\x81\x6c\xaf\xa6\x10\xf4\x65\x35\x0b\x4d\xef\x1b\x66\xa0\x0e\xee\x00\xd8\x5c\xd9\x50\x6a\xc2\xa5\xb8\x84\xcb\xdc\x6b\x33\x28\x31\x4c\x44\x65\xa1\x49\x47\xa2\x23\x11\x29\xf8\x70\x7d\x39\xaf\xd2\x78\x91\x57\x22\x52\x60\x73\xe3\x45\xb2\xc0\xc6\x7b\x80\x30\x7b\x85\x2d\x19\x05\xe7\x90\xf5\x6f\x9e\x74\xd4\x10\xfb\x71\xe6\x66\x0e\xe9\xfc\x7d\xea\x55\x77\x14\x88\x2f\x9b\x07\x3b\x91\x41\x37\x65\xa3\xd0\xc0\xa5\x6c\x6a\x4f\xd5\xd8\xac\xa9\x6d\x6f\xa4\x02\x50\x33\x36\x83\xf0\xbc\xea\xa3\x64\xa8\x4d\x29\xd0\x84\xe8\x88\x62\xf4\xa1\xb6\xe6\x45\x50\x2f\xb1\x41\x8f\x41\x14\x79\x69\xd4\x36\xa6\x78\xc5\xf7\xe6\xe4\xd2\x34\x1a\xee\xe3\xd1\x70\x3d\xa1\x11\x47\xd1\x96\x40\x26\x35\xc2\x1e\xf3\x57\x53\x5c\xf3\xf2\xda\xad\x26\xcc\x30\xc9\xf2\xd0\xb7\x62\xe8\x40\x9b\x67\xb7\x1c\x2d\x38\x72\xe0\x8d\x00\x00\x20\x00\x49\x44\x41\x54\x71\x29\x1e\xf6\xa1\x70\x4b\xcf\x63\xef\x11\x04\xba\x9b\x23\x88\x10\x33\x97\xbb\xf4\x5f\xac\xa2\x02\x82\x3b\x1d\x22\x1c\x70\xe6\xa6\x9a\x8e\x30\xbf\x28\x05\x7e\x7e\x8f\x50\x2e\xeb\xee\xd4\x38\xb1\x2c\xa0\xa1\xc6\xb8\x94\x98\x78\x93\x57\xc3\xa0\xe6\x49\x4b\x54\xa6\x96\xb5\x5b\xcb\xc8\x3e\xcf\x4b\xfb\xbe\x11\xf5\xdb\x85\x60\x82\x60\xcb\x36\x5a\xaa\xde\x6c\xec\xbb\x0c\x5a\x39\xcf\xe7\xe2\xbe\x0c\x0c\x0d\xaf\x89\xd1\x01\x6f\x74\x23\x12\x3d\x5b\x13\xd0\x2c\x37\xf0\x65\x73\x03\xd6\x50\xd4\x5a\xce\xae\x24\xaa\x36\x05\xe5\xe8\x4d\x27\x6f\x2c\x49\x1a\xb9\xd4\x54\x66\xa8\x78\x6b\x10\xc6\x6c\x4b\x09\xdc\x30\xa2\x1e\xce\xe5\x06\xed\x72\x58\x26\x1b\xaf\xd2\xa8\x8c\x1c\xc8\x44\x18\x36\x31\x6e\x82\x04\x39\x95\x89\x26\x01\xc0\xab\x46\x58\x1b\xba\x99\x43\xed\x4d\x43\x50\x0f\x9f\xe4\xd2\xf6\x0e\x8d\x89\xfc\xbc\xd3\x12\x2f\x0e\xc7\x9b\x99\x42\x80\x74\x01\x96\x6d\x69\x79\xcd\x20\xe8\x4d\x35\xf5\x50\x1a\x39\x94\x61\x38\xd1\x68\xbe\x9c\x6c\x25\x3a\x95\x82\x87\xa1\x71\x49\xc1\x24\x07\x97\xf2\xbd\x86\xc4\x61\x26\x97\xb6\x79\xc2\xb2\x80\x81\x43\xab\x0d\xa1\x62\x1b\x3a\x0d\x08\x0e\x2a\x13\x41\x88\xce\x6c\x17\xc9\x4b\x29\x04\xbc\xa2\x4d\x3b\xe2\xcb\xb1\xc5\x24\x14\xe4\x00\x53\x43\x97\x35\x89\x20\x99\x1b\x8f\x30\x14\xfb\x04\x00\xa5\x23\x66\xd4\x41\xcb\xc8\xda\xb2\x31\x9b\xb1\x96\xc2\x70\x14\x50\x06\x19\x1b\xd1\xab\x10\x9b\x5e\x9f\x70\x11\xce\x66\x60\xb8\x25\x06\x6f\x62\x21\x8a\x28\xb2\x15\xae\x86\x90\x34\x81\x52\x20\xb2\x5c\xe6\x6a\xe0\x97\xc6\xdf\x12\x83\x80\x3a\xa0\x95\x64\xca\x5a\x86\xc6\xcf\xf7\xa9\x86\x81\xad\xcc\x4c\xa3\x0c\x24\xc4\x76\x92\x08\xa7\x62\x56\x36\x25\x43\x90\xb5\x12\xa3\x2c\x05\xb9\xbd\x14\xe7\xfe\xf2\xb3\xd8\x01\xb7\x66\xbd\x27\xc8\x06\xd3\x87\x10\x1a\x10\x68\x48\xc4\x0c\xa7\xc9\xf9\x3d\x1a\x78\x7e\x9d\x6a\xf6\x86\x30\xf7\x14\xe0\x64\x10\x4d\xca\x96\xeb\xa1\x74\xa3\xc9\xb4\x25\x20\x40\xc1\xe9\x44\x5c\x42\x45\x01\x65\x83\x03\x06\x26\xf3\xca\x14\x9c\x40\x10\xcd\x24\x83\x0f\x17\x5d\x84\x86\xea\x02\x94\x0c\x4e\x04\x6f\x06\xdc\x0b\x07\x91\x92\xe5\xe8\x06\x99\x79\x10\x31\x08\x0a\xae\xc4\xe5\x95\xc0\xb3\xc1\xb2\x41\x4d\x38\x94\xf5\x0d\xfa\xe2\x66\x6d\x08\xa2\xb9\x37\xae\x93\x80\x81\x94\xb2\xa9\x09\x56\x42\x76\xc2\x06\xcc\x29\xaa\xf0\xf8\x3c\x6e\x66\x08\x71\x90\x04\x4a\x59\x4c\x6a\xd4\x17\x75\x14\xc4\xe0\x26\x31\x87\x26\x92\xa4\x79\x80\x18\x72\xce\x74\x27\x48\xa7\x54\x02\x72\xb9\x79\x13\x41\x3a\x21\x06\x49\xd6\x4c\x63\x59\xb6\xe1\xc0\xa6\x64\x62\xe9\x16\x84\xa1\x0f\xbf\x70\x39\x06\x64\xca\x54\xe1\xd6\x38\xc7\x66\xbc\xd7\xd1\x9d\x0a\x32\x37\xc9\x1a\xcf\xac\x14\x34\x08\x20\x1a\x21\xc6\xab\xf7\xc5\x6a\x20\x8d\xe0\x32\x45\x87\x64\x43\xb0\xc1\xad\x51\xa9\x92\x59\x54\xd3\x4e\x42\xd6\x28\x54\x2e\x88\x0a\x9a\x45\xca\x09\x37\x2b\xb2\x79\x96\xc7\x00\x0d\x55\xc3\x74\x48\xe6\x26\xba\x0c\xc8\xa4\x1b\xa3\x53\x8d\x51\x20\x93\x1c\x30\x0b\xee\xae\x50\x30\x25\x45\x22\xcb\x3c\x81\x96\x0c\xd6\x68\xab\xd8\xcc\x05\x97\x3c\x7a\x20\x58\x05\x9e\x17\x67\x35\x92\x93\xc6\x27\x81\xc1\xa3\xcc\xdc\xb2\xe0\x11\x40\x76\x01\xa5\x22\x1a\xd3\x39\x22\x1a\x86\x44\x85\x67\x0c\xdb\xe7\xbc\x12\x84\x75\x18\x16\x2f\xe1\x24\x4b\xdb\xa0\x79\x73\x5a\x5a\xa2\x75\xdb\xad\xde\xaa\xb1\x62\xd3\xba\xf1\x8d\x1b\x26\xd6\xad\x29\x62\x51\x2f\xf6\x7a\xe7\x66\xcf\x1e\x3a\xa2\x33\x67\xcb\x73\xb3\x23\x55\xca\xf4\xa1\x1f\xd6\xf9\xdd\xd1\xd4\xb4\x91\x49\x1a\x8c\x8f\xf4\x36\xac\x64\xd9\x8a\x59\xd9\x9a\xf0\x1c\x1c\xf4\xca\xe3\x67\x3b\xfd\x2a\x47\x25\xe6\xe8\xcc\xe6\x00\x8b\xcc\x2a\x84\x6a\xe3\xea\xc5\x91\x0e\x10\xdd\x42\xe1\xca\xa8\xda\xb3\x73\xad\x13\xd3\xc1\x3c\x45\x08\xd1\x04\xba\x96\x32\x45\x06\x47\x95\xbd\xbf\x6e\xc2\x57\xad\x90\xd9\xc5\xc0\xb5\x69\x50\x8d\x1c\x3e\xe9\x00\x72\xf6\x68\x96\xe0\xed\x91\xb4\x65\x03\x42\x4c\x80\x86\x28\x18\x10\x52\xd1\xef\x96\x27\xa7\xad\x3f\x90\xf1\xe5\x55\xc0\x1a\xb6\x7c\x5a\x32\xdc\x12\xbf\x09\xa9\x90\x00\xcd\x17\xa6\x1d\x9b\xb7\xbf\xe7\xee\x2d\xef\xb8\xb3\xdc\xbc\x59\xb1\xd5\x8b\x0a\xae\xb6\x4c\xc8\x39\xd7\xfd\x67\x0f\x1c\xfa\xf8\xa7\xa7\xfe\xf4\xcb\xc5\xf4\x99\x06\xae\xe7\x52\x9c\xd2\xac\x83\x41\x72\x69\xe4\xda\xcb\xdf\xfc\x8f\x7e\xb2\xbd\x75\x4b\x18\x48\xb0\xda\x18\x0a\xc3\xd1\xe3\x0f\xfc\xcb\x9f\x4e\x0f\x3f\x49\x39\x2d\x47\x69\x10\x3c\xb8\x95\x29\xce\xb6\x8a\x9b\xfe\xce\x4f\xae\xbb\xfd\x4d\xc9\x23\x50\xc0\xc8\xde\xec\x91\x8f\x7d\x72\xdf\xcf\xfc\x97\xc9\xc2\x00\x98\x72\xd1\xd0\x28\xf0\x1c\x54\x13\xcc\x36\xf0\xb4\xfd\xae\xb7\xec\xfa\x91\x1f\xe6\xca\xc9\x66\x60\x48\xa2\x19\x00\xce\xcc\xfe\xe1\xf7\x7d\x64\xb4\x1a\x8c\x8a\xb5\x23\xab\x08\xbb\x2e\x7d\xc7\xbf\xff\x97\xf5\xd8\x48\xad\x8a\x1e\xcb\x1c\x64\x52\xcb\xbb\x7b\xf7\xee\xfb\x77\xbf\x34\xff\xf0\x13\x45\x33\x12\x5e\x42\x37\xa3\xf3\xa1\x29\x4d\x72\x2a\x11\x06\x06\x18\x94\x00\xef\xc7\xd6\x8a\xef\x7c\xc7\x65\x3f\xfe\xe1\xf6\x25\x5b\x16\xcd\x67\x9d\xed\x1c\x95\xbc\x46\xaa\xe8\x09\xca\xad\x32\x5c\x75\xc5\xd5\x97\x5f\x35\x7b\xf7\x23\x5f\xf9\xb7\xff\x76\xc5\xfe\x63\x50\x5f\x16\x80\x08\x85\xc2\x73\x1d\x40\xb1\x1a\x2f\x27\xae\xbb\x02\x57\xec\x3e\x69\x16\x3b\x05\x90\x52\x21\x73\x5b\x7d\xf9\xee\xce\x75\x57\x9d\x7d\xe6\x40\xbb\x3f\x5b\x3a\x9c\xd6\xc4\x72\x39\xb8\x03\xfd\xb1\xd1\xd3\x2b\xc7\x84\xd2\x1d\x30\x84\x58\xf7\x47\x3a\xd9\x50\x1b\xa8\x40\xa1\x69\x18\xea\x80\x14\x02\xe0\x4c\x0a\xca\x65\x6b\x7e\x6c\x2c\xad\x18\xd7\x50\x00\xd3\x10\xa1\x3e\xd6\x69\x4d\x5c\x79\xf9\xe0\xd1\x87\x1b\x35\xc5\xa0\x13\x46\x2f\xdb\xd9\xdd\xbe\x79\xa6\xbf\x40\x94\x86\x22\x53\x06\x8f\x81\xf5\xc8\x78\x15\x97\xfa\x50\xbc\x74\x35\xc4\x72\x64\xbf\x24\x8f\xd5\xb0\x2a\x24\xc3\xc8\xc5\xa2\x58\x75\xcf\xdd\x57\xfd\x9d\xff\x1e\xbb\x2f\x9b\x73\xcb\x82\x19\xea\xe0\x04\x68\x4c\xcc\x51\x68\x57\x64\x0a\xd3\xf0\xd6\xad\xd7\xdd\xfa\x3f\xfd\xbd\xfe\x9a\xd5\x60\x4c\x50\xe2\x30\xf2\x10\xbd\x92\xc2\xa6\xb5\x93\x37\x5e\x9f\x43\x3b\x78\xa0\xcc\x00\xcb\xb9\x48\xac\x59\xac\xbd\xfd\x66\xad\x99\x70\x65\xb9\x27\x46\x2a\x8a\xac\x62\x6e\x64\x6f\x41\x66\x09\x11\x1e\x73\x36\x91\xae\x20\xf7\x86\x33\x21\xeb\xa0\x6c\x68\x7e\x0c\xd9\x40\x27\x1c\x0a\x4e\x10\x59\x74\x20\x39\xb2\x82\x1b\x3d\xc3\xd7\xdc\x7c\x9d\x13\x5e\x58\x16\x7c\xa2\xb5\xe6\x9a\xdd\x9e\x3c\x3a\x02\x42\xcc\xcc\xc8\x40\x0e\x1e\xe0\x71\x29\x33\x7d\x29\xc6\xd8\x2e\xd4\x16\xf9\xb0\x87\xb8\x45\x47\xe1\x28\x92\xd7\x49\x9d\xeb\xae\xdd\xf8\xe1\x0f\x56\x9b\xd7\xf4\xaa\x2a\x59\xcc\x28\x03\xcc\xaa\x45\x9d\x3d\xad\xa3\xc7\x79\x7a\x0a\x5e\x37\x27\x2c\x33\x07\xd9\x47\xae\xbf\xe1\xd2\x0f\xff\x60\x9d\x5b\x85\x17\x04\x0d\xde\x8f\x4a\xf4\x01\xf2\xe8\xce\x9d\x6b\x6e\xbc\xae\xae\x72\xc8\xc9\x90\x20\x13\xa2\x88\xaa\xae\xd6\xbd\xf9\xda\x72\xf3\x46\xb7\x22\x1b\xa9\xa1\x60\x9f\x17\x0a\x06\x78\x11\xe5\xa3\x8b\x64\x3c\x2f\x4e\x6a\x0b\x0c\x4e\x8a\x26\x0b\x64\x82\x4b\xca\xb4\xb5\x37\x5c\x9d\x8b\x76\x4a\x99\x08\x36\x32\xba\xea\xea\xdd\x03\xa5\x3a\xc0\x87\x17\x14\x80\x90\x09\xa7\xa8\x17\x17\x7a\xbf\x84\x2f\x6e\x90\x01\x0d\x13\x49\x32\x8d\x8e\xae\xbd\xfd\xd6\x89\xab\xaf\x9d\xaf\xfa\x16\x0c\x8c\x06\x2f\xa6\xcf\xf5\xef\x7b\xe0\xd4\x97\xbe\x32\x73\xf4\x78\x67\xe3\xba\xf1\xb7\xbd\x79\xdd\xdb\xdf\xea\x23\x2b\x92\x15\xb9\x28\xba\xd4\xb6\x0f\xbe\xeb\xc0\xc7\x7f\x47\x47\x8f\x9b\x3c\x13\xd9\x68\x19\x71\xe5\xf8\xf8\xf5\xd7\x68\xd5\xea\xdc\xef\xd1\x14\xea\x4a\x6e\xce\x00\x30\xc1\xfb\x13\x23\xab\xdf\x74\xfd\x99\x27\x9e\x66\x77\x9e\xc8\x4d\x88\xfe\x8d\xbf\x82\x58\xc3\x08\x69\x30\x60\x2b\x10\x96\xc8\xce\xae\x6d\x5c\xb9\x12\xfd\x33\xa2\x8a\x35\xeb\x3a\x97\x6c\xeb\xb9\x3b\x14\x73\x62\xa5\x18\x62\x86\xe5\x61\x78\xae\x17\x16\x0c\xfc\x19\xeb\xe0\x10\x0d\x75\xca\x9a\xb2\x99\x4c\xef\x67\xb4\x2f\xd9\xb6\xe1\x96\x1b\x6b\x31\x80\xe6\x9e\x95\x3a\xc6\xc3\xbf\xfb\xd9\xc3\x1f\xfd\xd5\x78\xfa\x44\x49\xcc\x88\xcf\x7d\xfe\xbe\x37\xff\x83\x7a\xfd\x07\xef\x59\x60\x0a\x67\xbb\x3c\x37\x7d\x66\xea\xc4\xe4\xb6\x75\x73\x47\x8e\x94\x4e\x27\x83\x5b\xf2\x50\x6e\xdd\xbc\xfe\xd6\x5b\xfa\x95\x27\x5a\x49\xa6\xa9\xd3\x83\x99\x6e\x6b\xcb\x26\x1b\x1b\xcf\x66\x55\xd2\xc6\x3b\x6f\x9d\xfa\xd4\xe7\xf1\xdc\x02\xa1\xd7\x68\x0f\xc4\x26\x0f\x30\xd2\xcf\x1d\x3c\x3c\xb1\x71\x1d\x47\xc7\x64\x51\xab\x26\x27\x76\x5f\x5a\x1f\x3f\x65\xad\xd6\xc4\xae\x5d\x18\x9f\xd0\x20\x15\x40\x35\x75\x76\xd0\xc7\xd8\xf6\xcd\xbe\x24\xde\x7d\x25\x6d\xbb\x22\xce\xf7\x17\x1a\x0e\x3d\x27\x83\xd3\xe9\x55\x08\x23\x5b\x36\x96\x3b\x36\xf5\x3d\x39\x44\x79\x11\xad\xff\xec\xa1\xb3\x9f\xfe\xbc\x4d\x9f\xb1\x91\x12\xce\x89\x84\xd6\x62\xbd\xff\xd7\x7e\xab\x68\x85\xde\xfc\x6c\x3e\x7a\x7a\xee\xc0\xe1\xd9\xa3\x47\x35\x3d\xdb\x41\xb3\xab\x29\x32\xd8\x1d\x69\x8f\x5e\x71\x59\x67\xd7\xce\xc5\x9c\x10\x58\x58\x71\xee\xd9\x03\x53\x8f\xec\xdd\xf6\x57\xee\xe6\xee\x31\x77\x0f\x35\x46\x77\xef\x2a\x2e\xdb\x95\x0e\x1f\x45\xa3\x7b\xfd\x86\x6d\x68\x50\x03\x31\x18\xd9\x3d\x76\x62\x3c\x67\x5e\xb6\x2b\x43\x55\x2c\x56\xdf\x7c\xc3\xe1\x7b\xef\x6b\x8d\xb4\x56\x5c\x7f\x55\x95\x45\x22\x76\xab\xc5\x43\x47\x53\xe8\x4c\xec\xdc\x2c\x0d\x37\x95\x10\x24\xbc\x0c\x70\x18\x9f\x47\x4f\x40\x70\x21\x36\x74\x4f\x8c\xed\xc9\x55\x5c\x31\xe6\x70\xd1\xea\xc0\x32\x86\xb3\x7b\x9f\xc6\x99\xa9\xd2\x20\x85\x98\x2d\x78\x0e\x81\xfd\xa3\xc7\x1f\xfb\xdf\x7f\x5a\xfd\x5e\x51\xd7\x39\x70\x45\x2e\x73\x11\xeb\xa6\x6b\x13\xdd\x3d\xc7\xc9\xd5\x93\x6f\x7a\x53\x6a\xb7\x55\xd7\x54\x2c\xbc\xa8\x0f\x1c\x9d\xfe\xcc\x9f\x6e\xba\xf6\xaa\xf2\xaa\x4b\x59\x09\x99\x83\x4e\x7b\xfd\x1d\xb7\x1c\xfb\xf2\xd7\xeb\xb9\xee\x32\x60\x76\xe1\xf4\xe1\x45\x8b\xe0\x05\x14\xfa\x0b\xd6\xaa\x25\x6c\xd8\xeb\xe0\xf2\x60\x40\x6b\xb1\x3f\xb7\xe7\xd9\xd1\xdd\x3b\xdc\xa2\x85\xb8\xfa\xe6\x6b\x9e\x31\x71\xa4\x58\x75\xd3\x35\x72\x80\xc4\x5c\xb7\x7b\xe0\xd0\xd8\x8e\x4b\x9c\x9e\xe5\x11\xc3\x94\x50\x2f\xff\x9c\x2e\x3e\x71\xa6\x86\x94\xb0\x14\x63\x68\x8d\x8f\xa3\x2c\xa0\x1c\x32\xa1\x90\x43\xe8\x9d\x99\xd2\xc2\x42\x43\xd9\x88\xb9\x1f\x95\xa9\x88\xd0\xea\xa5\x95\x56\xb6\x8a\xd8\x2e\x02\x8a\x86\x33\x89\xb5\x85\x7e\xe0\xc0\x34\xb2\x7e\xed\xfa\x5b\x6f\xee\x79\x76\xf3\x08\xcf\xb3\x73\xdd\xe7\x8e\xf4\xf7\xee\xeb\x1d\x3e\xec\x83\x2a\x20\xb8\xb1\x9b\xd3\x86\x3b\xde\x8c\xb5\xab\x93\x2d\x35\x0e\xf4\x21\xc6\xd5\x54\xe6\x2d\x39\x3a\x37\x2d\xe7\xf9\xee\xe6\x4b\x77\xda\xf4\x6b\x14\x05\x5b\xd2\x7d\xe6\x06\x3d\x85\x3a\x8e\x53\x0f\x3e\x12\x90\x0d\x26\x62\x64\xdb\xe6\xb0\x61\x5d\x5c\xbb\x6a\x64\xcb\x7a\x89\xa0\x55\x33\xb3\x33\x7b\x9e\x2e\x6d\x78\xe0\xf3\xb0\x1b\x5f\x81\x05\xb5\xf4\xb0\x29\x6b\xea\xfa\xcc\x0d\x80\x07\x57\x59\xc8\x4a\xa7\x64\x35\x80\xa0\xa8\x5e\x85\x5c\x83\x06\x20\x13\x99\x0d\x5c\x0a\x0b\x56\x23\xc9\x14\x9d\xfd\xe0\x82\x4a\x6f\x88\x88\xc0\x91\xb1\x89\x1b\xae\x2a\xd7\xaf\xc9\xca\x99\x28\x0a\x75\x0f\xed\x5f\x78\xf6\x60\x8b\x5c\xdc\xb3\x57\x27\xa7\xcc\xda\x00\xb2\x2a\x6c\x58\xbb\xe2\xc6\xeb\x59\x46\x71\xb9\xba\x10\x99\x4d\x15\xa8\x32\x01\x19\xd1\xac\x0c\x31\x33\x34\xd5\xb8\x43\xbd\x33\xe5\x74\x37\x35\x72\x37\xa7\x39\x02\x9b\xf2\x33\xc1\xcc\xcf\x3e\xfe\x24\xbb\x8b\x85\x1b\x81\xd4\x6a\x4d\xdc\x7a\xdb\x8a\xab\xae\xf2\x08\x77\x44\x85\x74\xe6\xcc\xe2\xbe\x67\xad\x08\x42\x08\x0d\x73\xc7\x0b\x7d\xc9\x2b\x18\x83\x43\x75\x0f\xdd\xa0\x21\x87\x20\xe5\x9c\x05\x34\x23\xae\x21\x00\x19\xc2\xa0\x00\x97\x30\x99\xe8\x10\x11\xb3\x57\x55\x55\x55\x29\xbb\x28\x87\x90\x0a\x0c\x42\x32\xd5\x21\xab\x5c\xb5\x6e\xed\x9d\x6f\xa9\x72\x36\x27\x60\xd1\x7d\x71\xdf\x81\xfa\xd9\xa3\x63\x0a\x33\x8f\xee\x1d\x1c\x3d\x06\x66\x93\x97\x59\x55\xed\x9b\xde\x79\x67\x1a\x5f\xd1\x48\xf1\xeb\xd0\xec\xfa\x35\xac\x6d\x35\x57\x50\x83\x93\xba\xd8\xcc\x5e\x06\x0f\xe6\x11\x0a\x94\x05\x37\x36\xf4\x80\x49\xc8\x1c\x02\xae\x6a\xe4\xb6\x3a\x37\xb3\xb8\xff\x10\xe1\x26\xf4\x8b\xb0\xf2\xad\xb7\x8e\xdf\x72\x43\x9d\x44\x80\xfd\x7e\xf7\xb9\x43\x58\xec\xc1\x4c\xc3\x9a\xdd\xe5\x3d\xe3\xf8\x0a\x2d\x38\x2c\xb4\x16\xb3\xe0\x4e\x39\x18\x6b\xa9\xd7\x67\x9d\xa2\x0f\x03\x37\x29\xc5\xf1\x0e\xcb\xd2\xdc\xa3\xbb\x21\x8b\xde\x0f\x5e\x11\xbb\xee\xb9\x7b\xe2\xad\xb7\x0e\xd6\x6c\x38\x5b\xd7\x79\x80\x54\x29\xc8\xa3\xd7\x0a\x2c\x76\xed\x1c\xbd\xe6\xda\x94\x1a\x3e\x80\xb9\x57\x2d\x0e\xea\xb4\x75\xbd\xdf\x78\xc5\xe2\x9a\xf1\x85\xfe\x22\xab\x41\x04\x80\x60\x09\xe3\xd7\x5e\xd6\xde\xb1\xd3\x10\x08\xd4\x26\xb7\x86\xf5\x6b\xb6\x7b\x57\xb6\xec\x96\xdd\xea\xa0\x3a\xa8\x4e\x96\x53\x10\x41\x03\x4c\x2c\x32\x8b\xdc\xe0\x31\x0a\x72\xd3\xd0\x37\x42\x88\xb4\x32\xf9\xb9\xaf\xef\x01\x92\xe4\xa9\x28\x26\x6f\xba\x7a\xec\xc6\x6b\x92\x9b\x91\xf5\xec\xf4\xfc\x93\x4f\xc5\x10\x97\x53\x40\xe0\xe5\x3c\xc8\x8b\x7a\x12\x35\xbb\x29\x50\x0e\x13\x0d\x83\xba\x9e\x3a\xab\xc5\x45\xef\x8c\x0c\x9a\xea\x68\x4f\xed\x4d\xeb\xca\xd1\x71\x3f\x3d\xad\x90\xb3\x09\xa4\x84\xb4\x79\xcd\xe6\x1f\xff\xfe\x91\x76\xb1\xfd\xf8\xdc\x60\xff\xbe\x73\x8f\xed\x9f\x79\xe2\x29\x1e\x3d\x9c\xcd\x7d\xa2\xb3\xf2\xb6\x9b\xd2\xe8\x58\x9d\xfa\x64\xa0\x24\x86\xf5\xdf\x71\xfb\xe4\x0d\x97\xbb\x25\x42\xad\xd5\x9b\x2c\x87\x1c\x55\x07\xb6\x6a\x4b\xe3\x23\x1b\xde\x7a\xdb\xc9\xc7\xf6\x85\x7e\x0f\x26\x36\x7c\x35\x3d\x2b\x52\x96\x11\x02\xa2\x23\x80\x81\xa2\x87\x26\x08\x93\xe8\xb9\xb1\x31\x9b\x56\xac\xcd\xbd\x0c\x11\x55\x27\x92\xbc\x04\xce\x3d\xf4\xc4\xc6\xff\xae\x9f\xcb\x92\x0c\xad\xd5\x6b\x73\xc8\x52\x60\x60\x9e\x39\x3b\xb7\x67\x5f\x28\x0b\xfd\xf9\xb7\x5e\xb4\x0b\x0a\x9c\x29\xd2\x7c\x39\x15\x30\xb9\xa7\x93\xa7\x07\xa7\x4e\x28\x82\xb2\x08\xa5\x54\xad\xb9\xe1\x2a\xdf\xba\x65\x8e\x81\x6e\x94\x59\x85\x3c\x9f\xb6\xbe\xf7\x3b\xbb\x97\x6c\xe3\x65\x57\xc4\xb7\xde\xd6\xfa\xc1\x0f\x6e\xfb\xfb\x3f\xbe\xf5\x7d\xef\x1c\x48\x29\xc4\x3c\xb9\x62\xf3\x5d\xb7\x0d\xe4\xd9\x14\x72\x0a\x2e\xb7\x10\x37\x6e\x1a\xb9\xfa\xda\xd1\xab\x6e\x18\xb9\xfa\x86\x72\xf5\x46\xb7\x58\xc3\x20\xcb\xd4\x9c\xf9\xda\xf7\xdc\x39\x3f\x5a\xd2\x43\xdb\x6d\x99\x8f\xf6\x66\x97\x02\x63\x51\x83\x35\xab\x5e\xad\x6e\x42\xb7\x4a\xfd\x7e\x1a\xf4\x73\xbf\x1e\x54\xf5\x42\xaa\xbb\xd9\x51\x33\x24\x36\xad\x09\x1a\xe7\x93\x89\x4c\x19\x31\xbb\xef\x59\x4e\xcf\xba\x29\x3a\x0a\x05\xca\x94\x5d\x5e\xa7\xd3\xa7\x7b\xc7\x8f\x07\xb3\xa5\x96\x0c\x7f\x0e\x2b\xc6\xa5\x7c\x69\x58\xb0\x6f\x1a\xd2\x3d\x04\x14\xb0\x78\xf0\xd0\xb9\x87\x1f\xdf\xba\xfb\xd2\x7e\x56\x43\x68\xa4\xd5\xab\xae\xfc\xc8\x0f\xee\x4d\x79\xea\xb1\x27\xd9\x1f\xf8\x58\x6b\xdb\x3d\x77\x6c\xf9\xee\x7b\x7a\xad\xb1\x7a\x80\x28\xa0\x18\x2d\xd7\xe0\xc4\xa1\x83\x05\x2d\x87\xd6\xca\x6b\xaf\xb5\x6d\x1b\x53\x9d\x0a\xa1\xc8\xaa\xa2\xaa\x00\x93\x5b\x1e\xaa\x5a\x45\xa5\x98\x32\xd0\xce\x60\xce\x16\x55\x6e\xd8\x30\x7e\xcb\xb5\xd5\x67\xbf\xdc\xca\x03\x84\x30\xc4\xe6\x28\xa7\x1c\xae\xa2\xd5\xbe\xe6\xf2\xf5\x3f\xf4\x7d\x63\x05\x9d\x9e\xcd\x82\xc3\xe1\x4e\x88\x65\x3e\x33\xdd\x7b\xe4\xd1\x7c\xe2\xec\xb0\x9d\x37\x1b\x5f\xd4\xd4\x76\x39\xe6\xe6\x7b\x4f\xef\x0f\x9b\xd6\x2e\x91\xfe\x62\xa0\xba\xdd\xee\xd3\x07\x73\xaf\x4b\x36\xc4\xf2\xab\x62\x3b\x97\xd0\x48\x46\x67\x32\x19\xe0\xa0\x47\xf9\x99\xb3\xb3\xf7\x3d\xb8\xe6\xad\xb7\xc5\x35\x9b\x1d\x29\x19\xea\xc4\x91\x9b\xae\xbb\x79\xd3\xdf\x5e\x3c\x7c\x2c\x2d\x74\xdb\x6b\x56\xdb\xf6\xcd\x5a\xb5\xa6\x72\x14\x51\xb1\x5f\xb5\x92\xa5\x43\x87\x4e\x7e\xf9\xfe\x0d\xc8\x79\x7c\xed\xfa\xbb\xdf\xde\x73\x14\xb0\xe0\x74\xf3\x10\x31\xc1\x50\x26\xc2\xd8\x70\x46\x4e\x77\x62\xce\x13\x21\x2f\x69\x59\xce\x72\xeb\xdd\x77\xec\xbb\xff\xa1\xf6\x6c\x9d\xd8\x74\xa6\x96\x41\x82\x0c\x52\xbb\x1d\xdf\x7c\xe3\xe6\xeb\xae\xa2\xc9\x04\x07\x4d\x74\xe6\x80\xdc\x0a\x45\xff\xd1\x3d\xcf\x1c\x3b\x9a\x8f\x4d\x25\xcb\x8d\x17\x2e\x9c\x08\x80\x7b\x20\x58\xd7\x67\x1f\xda\xb3\xf5\x6d\xb7\x75\x0d\x7d\xe6\x6c\x1e\x81\x38\xdf\x9d\x7f\x74\x5f\xf1\xa2\xf5\x73\x7f\x0e\x1d\xf5\x79\x5a\xd2\x96\xc8\x32\x12\x56\x42\xb3\x5f\x7d\xe4\xc4\xef\xfd\xd1\xee\xbf\xf6\xa1\xba\x5d\x48\x16\xbd\xe8\xc7\xac\x1d\x9b\x6c\xeb\xda\xe0\x70\x04\xb7\x02\xce\xa2\x08\x5e\xf5\x73\x64\x67\xbe\xfb\xe0\x2f\xfc\xfa\xf8\x42\x3f\x15\xa1\xd8\xbc\x7e\xe5\x8d\x57\x57\x39\x45\x8f\xb5\x85\x10\xd9\x7d\xf8\x89\x87\xfe\xdb\x27\xfd\xdc\x39\x06\x46\x07\x85\x05\xa4\xf5\x3b\x2e\xd9\xf5\x43\x1f\x4c\xdb\x36\xa6\xa4\xc8\xa2\x0f\x6e\xbc\xe9\x86\x7d\x1b\xd6\xd4\x0b\x5d\xc0\xcb\xe4\x24\x29\xa7\xe4\xcc\x0e\xb2\x53\xaa\x53\x36\x3d\x44\xd8\x84\x52\x64\x40\x46\x11\x34\x3e\x56\x84\x50\xa8\x36\xaf\x09\x54\x21\x18\x42\x30\x67\x30\x64\x6f\x0b\xa7\xbf\xf2\xe0\x4e\xff\x09\xa3\x65\xd2\x00\xd0\x7d\x61\x6e\x66\xcf\x33\x91\x8d\x54\xc2\x49\x97\x12\x10\xc9\x86\x4f\x7b\x85\xc8\xc2\x90\x67\x19\xb2\x2a\x8d\xfc\x2b\x28\x30\xb0\x98\x9f\x3b\xf6\x9b\x9f\x68\xaf\x18\xdd\xfc\xc1\xef\xca\xa1\x84\xe7\x82\xaa\x73\xf0\x10\xcd\xcc\x12\x95\x91\x29\xa4\x34\x42\x1b\x11\x9e\xf8\x2f\xbf\x5a\xfd\xf1\xfd\x9d\xac\x7a\x7c\x6c\xfd\xed\x37\x6b\xf5\xca\x3c\xc8\xa4\x0c\xce\xfe\x22\x1f\xd9\x53\x7f\xfa\x73\xa5\x6a\xa3\x82\x83\xf2\xb6\x85\x99\x27\x8f\xe4\x3b\x6e\xb3\x4d\xeb\x5a\xb9\xc1\xfb\xb2\xd6\xac\x5d\xf9\xd6\x5b\x16\x0e\x1e\xa3\x23\x28\x0c\x1a\x26\x4e\x19\x0c\x59\xb0\x4c\x1b\x02\x4f\x43\xa9\x04\xe5\x0e\xcf\x1e\x32\x4c\x42\x6d\x14\x63\x91\x95\xd4\xd0\xdc\x2e\x29\x58\x24\xea\xc5\xc3\x87\xf3\xcc\x1c\x57\xac\xb4\x50\x30\xc3\x50\xd5\x27\x4f\x74\x8f\x9f\x98\x28\x8a\x1c\x4c\x21\x04\x10\x19\x16\x50\x91\xc9\x28\xbe\x22\x4f\xd2\x34\xb3\x69\x8a\xaf\x9a\xe2\xd5\xa5\x1a\x56\x22\xd0\xcb\x33\x53\xfb\x7e\xe6\x97\xf7\xff\xf4\x47\x27\x0e\x1f\x1d\x0b\x35\x8a\xc4\xa6\x4a\xd7\xa3\x31\x20\x90\xc1\x57\xb9\xc6\x9e\x39\xf6\xf0\x3f\xfb\xa9\x53\xbf\xf1\xf1\xb2\x5e\xf0\x82\x83\x91\x72\xf3\x7b\xde\x96\xdc\x4a\x95\xd9\x10\xc2\xc0\x66\xcf\x4e\x3d\xb3\xcf\x7a\x83\x4e\xf2\xb2\xce\x0e\x27\xd5\x76\x55\xa7\xcf\x2c\x3e\x7b\xa0\xd3\x5d\xb4\x58\xa7\x72\x80\x38\xa8\x0c\xbb\xdf\xf3\x8e\x5e\xd1\xa2\xb5\xb2\xd9\x88\xac\x74\x58\xb4\x42\x28\x81\x12\x5a\xfa\xdc\x7c\x78\xa4\xcc\x50\x02\x6d\x85\xcc\x62\xc0\x32\xaa\x55\xc0\x5b\xa8\xc6\x72\x35\x91\x53\x90\xf7\x85\x64\x81\x29\x9f\x79\xe8\xa1\xd1\xa2\x66\xec\xa9\x18\xc4\xde\xc2\xc9\x27\x9e\x8c\x14\x9c\xc1\xcb\x28\x33\x82\x01\x46\x04\xd1\x72\x01\x85\x97\xde\x3f\x35\x9e\x17\x78\xf1\x7c\xe3\x82\xe5\x1f\x9a\x58\x3f\x78\x1a\x99\x9d\x3e\xfe\x6b\xbf\x7d\xe2\x73\xf7\x4d\xde\x76\xe3\xda\x9b\xae\x5d\xb1\x7e\xe3\xc8\xe4\x2a\x6b\x95\xee\xb9\x3f\x37\x3b\x77\xe4\xe8\x9e\x07\x1f\x39\x76\xef\xfd\x9d\xe9\xc5\xb1\xba\xce\x45\x91\xb3\x8f\xa3\x38\x77\xff\x23\xd5\x7d\x8f\x47\xa1\xb2\x6c\x51\xd5\xa9\x53\xb3\x0f\x3d\xd6\x36\x10\x0a\x62\x96\x35\xe4\xdf\x68\xb0\xd3\x9f\xb9\x37\x75\x17\xf3\xc4\x48\x6d\xde\x4e\x08\x8a\x6d\xd5\xab\x23\xfa\xbd\xc5\xee\xe7\xef\xe3\x73\xc7\x06\xf0\x1c\x86\xca\x93\x17\xc8\x02\x86\xce\x33\x22\xd6\xc7\x4f\x60\x7a\xaa\x6d\xac\xf7\x3e\x73\xfa\xe3\x9f\x4a\xa3\x63\xad\xda\x60\x9a\x7f\x7a\x4f\x2b\x25\x78\x1e\x81\x4d\xff\xf6\xa7\x78\xfa\x54\xe5\x62\x88\xe5\xfc\x62\xf5\xa7\x0f\x8c\x85\x00\x78\x38\x3b\x3d\xf7\xa9\xcf\x76\x9f\xdc\x9b\x88\x20\xf8\xd1\x93\xe1\xd4\xe9\xf8\x72\x7e\xf9\xa5\x77\x36\x68\xf6\xf0\x13\x02\x1c\x72\x77\xd2\x32\x82\xb3\xf0\x58\xd4\x2d\xd6\x74\x23\x43\x9d\x8a\xba\x2e\x73\x0e\xc8\x72\x8f\x1a\x45\xce\xa5\x33\x85\xd0\x0d\x94\x39\x54\x07\xd2\x55\x40\xa9\x25\x39\xb3\xa8\x22\x33\x9b\x25\xba\xc8\x22\x47\xc9\x6a\x1b\x56\x83\xb7\x13\x2a\x83\xa1\x2a\xbc\x6f\xc6\x0a\xad\x8a\x01\x46\x43\xfe\x33\xa2\x35\x51\x0c\x4e\x37\x39\x3d\x2a\x9b\x90\x11\x1c\x11\x08\x45\xb6\x41\x74\x32\x8d\x36\xf9\x07\x28\xe7\x5c\x27\xb4\xea\x90\x49\x93\x8f\x26\x77\xab\x61\x9e\x40\xa7\xd5\x64\x06\x4d\x28\xe4\x01\xde\xf8\xf3\x6f\x40\xf5\x01\x10\xc1\x12\x23\x72\x36\x17\x72\x2b\xe7\xe0\x29\xa7\x5e\x1e\x60\xa9\x9f\xd3\x30\xff\x0e\x1e\x82\x42\x15\x07\x32\x5a\x62\x15\x73\x27\xd3\x91\xa9\x6c\xc3\x3c\x5d\x82\x3c\x0e\x73\x8c\xe8\x30\x5a\xa2\xb2\xe5\x22\xe7\xc2\x19\x5d\x83\x20\x9a\x82\x85\x56\x8d\x7e\x19\x28\xa3\x10\xa9\x76\x9d\x09\xaf\xe2\x8b\x24\xaa\x0d\x9c\x4c\x85\x2c\xa7\x9c\x0a\x4e\x2b\xe0\x50\x0d\xd4\xb1\xe9\x9c\x64\xee\x43\x26\x80\x1e\xd1\x49\x3e\x92\x92\x93\x83\xc0\x6c\xde\x2f\x15\xb3\x99\x18\x94\xa2\x07\x20\x00\x59\x74\x21\xe0\x7c\x9f\xac\x57\xdf\x67\x41\xb9\x91\xcf\x7b\x20\x3c\x9b\xea\x20\x13\x12\x0d\xa0\x35\xfc\x31\xb8\xac\x51\x70\x0e\x04\xd6\xd1\x32\x0d\xc1\x05\xb6\x72\x99\xd9\xa8\x86\x14\x9c\x31\x5b\x32\xd4\xc6\x20\x51\x88\x62\x0a\x72\x22\xd1\x45\x64\x53\xd3\xbf\xc2\x42\x8c\xc9\x86\x3d\x92\x9a\x72\x44\x5a\x70\xbc\xb0\x66\x9a\x74\x3a\x9d\xc1\x59\x97\x99\x31\x97\xb5\x99\x6c\xd0\x84\x7c\x95\x35\x5a\x46\x4b\x24\xa8\x6c\x32\xb7\xe0\xcc\xa6\x06\x7c\x31\xa8\xc8\x2c\x53\xc8\xb4\x1c\x14\x72\x28\x72\x91\x02\xeb\x98\x1a\x8a\x5f\xf8\x46\x3a\xf6\x08\x4d\x68\x38\x6c\x83\xd5\x94\x17\x3a\x00\x94\x79\xe9\xe9\x03\x26\x97\xe0\x86\xca\x20\xc5\x4e\xb2\x4c\x96\x52\x1d\x94\xc9\x2a\x34\xda\x25\x87\x71\xa9\xdd\x96\xb2\x21\x64\x88\x08\xae\x32\x01\x54\x3f\xc0\x1d\xd1\x2d\x00\x40\x72\xa3\x65\x3a\x61\xf0\x4e\x52\x36\x89\x0d\x31\xf6\xfc\x41\x98\x20\x33\x44\x07\xe1\x39\x38\xe4\xd9\x18\x90\xcd\xcd\xcd\x2a\x7a\x68\x94\x11\x20\xe8\xa2\x9a\x71\x3d\x08\x1e\xdd\xb3\x31\x2e\xe1\x30\x60\xa6\xb2\x9b\x55\x18\xd6\x84\x37\x72\x95\x6f\x4c\x3f\xb8\xa4\xa4\x0b\x4d\x65\x24\x14\x33\xd9\x6c\xe7\xc8\xa6\x86\x4b\xcb\xdd\xc2\x44\xe4\xe1\x86\x04\x4d\x3d\xc1\x70\x6b\x02\xc1\x49\x51\x1e\x3c\x44\xd1\x9a\x8e\x5a\xc8\xd6\xa8\xdc\x61\xa2\x65\x32\x64\x44\x17\x61\x0e\xcb\xa1\x0e\xee\x1e\x90\x87\xd5\x1d\x2c\xb2\x55\x51\x92\x37\x72\xaf\xf3\x8d\x7a\x86\x3d\xdd\x98\x2c\x37\xe1\x8d\x5b\x6e\xf0\x11\xc2\xcc\x11\x97\xb8\xce\x06\x6f\xf4\xe6\x7e\xd8\xe4\x5e\x4d\x3e\xd3\xd4\xd7\x2e\x1f\x4a\x39\xd4\x84\x1b\xa8\x66\x43\x81\x97\x14\x07\xc7\x97\x33\xe0\x72\xc3\x3c\x98\x24\x22\x85\x8b\x86\x80\x09\x40\x23\x91\x04\x85\x42\x00\x3c\x05\x00\xa8\xc3\x50\x46\xd6\x28\x92\x9a\x65\xae\xb6\x0c\xcb\x14\x43\xd3\x51\x49\xe6\x44\x26\x93\xc1\xe4\xc9\xd4\xc8\x65\x40\x2b\x93\xe8\x2a\xa5\x7e\x84\x47\x8c\x54\x72\x36\xda\xe7\x66\x75\x47\xf0\x61\xc5\xa6\xc9\x9c\x56\x9b\x07\x85\x22\x13\x0a\x30\xcf\x16\x1a\xa5\x1b\x87\x52\x9b\x66\x73\x6f\x5b\x2e\x55\x0c\x4d\x79\x34\x20\x22\xfa\x52\x9b\x1b\x44\x02\x81\x0e\x0d\xbf\x5f\x12\x8d\xbf\xfa\x7a\x92\x0b\xde\xfc\xa2\x07\xba\xb0\xb3\x22\x5f\xf0\x96\x25\x35\x04\x64\x96\x83\x50\x0f\x62\x36\x79\xc8\x16\x10\x12\x63\xd3\xf9\x91\x42\xe1\x2e\x78\xd3\x54\x20\xb8\x37\x35\x48\x20\x82\x54\x66\x5f\xb2\x14\x29\xba\x2d\xd5\x0a\xc0\xcc\x9b\x67\xec\x74\x95\xee\x22\x32\x42\xc3\xb2\x35\xb4\x31\x88\xa6\xbb\x1c\xc5\x06\x76\x1e\x22\xb7\x17\xec\x1b\x71\xe1\x36\x3a\x17\xca\xf7\x89\x17\xb9\x9d\xd7\xac\x32\xf1\x95\x72\x65\x4b\xcf\x4f\xc0\xff\xdf\xde\x99\x07\xc9\x75\x5d\xe7\xfd\x2c\xf7\xbe\xd7\xdd\xd3\xb3\x01\x83\x85\x58\x07\xc4\x46\x00\x04\x41\x12\x22\x41\x70\x97\x44\x52\x12\x25\x25\xa6\x23\x59\x56\x6c\xd9\xb1\xe3\x28\x9b\xb3\x39\x95\xa4\xb2\x32\xa9\x54\xe2\x38\x89\xed\x38\x71\x12\x49\xb1\xca\x96\x6d\x59\xb2\x68\x5b\xb2\x65\x53\xa2\x44\x89\x14\xc5\x5d\xdc\x29\x90\x20\x00\x62\x5f\x06\xdb\x0c\x66\xe9\xe5\xbd\x7b\xcf\x39\xf9\xe3\xbe\x9e\x19\x80\x4b\xfe\x19\x26\x4c\x2a\x5d\x85\xc2\x60\xaa\xa7\xd1\x73\xfb\xbe\xfb\xee\x3d\xe7\xfb\x7e\x5f\x24\x2a\xb3\x5a\xe1\xad\x16\x21\x38\xb0\xa0\x24\x26\x0c\x11\x2d\x53\xf3\x02\xc1\xf9\xc2\xb9\x34\xb9\x54\xa3\x53\x33\xc4\x2e\x6b\x26\xa4\x4c\xd3\x35\x12\x26\x2f\xe8\x63\x91\xc7\x10\x98\xda\x79\x6e\xc0\x4e\x2b\xda\x96\x33\x2b\x59\x0b\x00\x5f\x48\x33\x4a\x66\x26\xc8\x4a\x98\xae\xfa\x54\xef\xe2\x8b\x1c\x3c\x0b\xf3\x70\xef\xe8\xf0\xcd\xf7\x03\xf2\xe8\xf2\x91\xf7\xee\x2a\x39\xf7\x91\x21\xb3\xce\x0f\xf7\x84\xa7\x5e\xca\x62\x2c\xbd\x01\x68\xd7\xd0\x6d\xd9\xb2\xe8\x9a\x2b\x21\xcb\xd1\x20\x9e\x3a\x36\xf3\xe0\x53\x79\x08\x6d\x4f\x42\x54\xdf\xb2\x79\xf8\x86\xab\xc5\xc8\x95\x65\xf1\xc2\xcb\xe5\x33\x3f\xe4\xfe\xa1\xc1\xdd\xd7\xb8\xd1\x35\x26\x09\xcf\xa0\x94\xaa\xfc\xed\x2e\x8e\x4d\x94\x7b\x5f\x0f\xc7\x4f\xb1\x99\x53\x04\x00\x31\x8b\x0c\x86\xa8\x06\xb4\xd0\x41\x94\xee\x9d\x9e\x7d\x60\xa6\x66\xb1\x51\x5f\xfc\xde\x1b\xb6\xff\xa3\x9f\x2f\xb4\x66\xc6\x54\x83\xd3\xdf\xfa\xd6\xe1\xe3\x67\xed\xf5\x23\xe4\x0c\xc0\x3a\xaa\x97\xed\xbc\x6a\xe3\x5f\xfb\x4b\x34\x34\x64\x08\x36\x76\xec\x85\x89\x4e\x78\xec\xb9\x06\x41\xc9\x3c\xb8\xf3\xaa\x6d\xbf\xf0\x37\x35\x72\xd9\x9a\xdc\xf7\xf9\xdf\x3d\xfa\x83\x97\xfb\x87\x06\xd7\xfe\xb9\x0f\xac\xf8\xc0\x1d\x65\x08\x88\x64\x40\x08\xe2\xd4\xa0\x0c\xe5\xd4\xf4\xd9\x67\x9e\x3f\xfc\x07\x7f\xd6\x7e\xe1\x85\xbc\x5b\x78\x05\x46\x54\x83\x48\x56\x71\x3c\x17\x34\xc3\x6e\x21\x59\xc0\x95\x38\x7c\x4e\xab\xd3\x5b\x9e\xcd\xdc\xe2\x45\x83\xbb\xaf\xbb\xa0\x36\x55\xc6\xc9\x28\xe3\x9d\x6e\xed\x8a\xf5\xf5\x2d\x9b\x02\xb8\x84\xfb\x74\x86\x66\x30\x55\x86\x89\x10\x26\xcb\xb2\xb3\x74\xc5\xa6\x9f\xfb\x89\x72\xe5\x62\x8e\xe2\x4c\x4b\x88\x53\x45\x77\x2a\x5a\xab\x0c\x41\x05\x09\xc5\xa4\xad\x61\xa6\x2c\x26\x63\xbc\x50\x16\x85\xc4\x12\xa9\x83\x3c\xee\xb3\xf1\x25\x8b\x16\x7d\xf8\xce\xcd\x7f\xef\xd3\xb0\x71\x4d\xdb\x53\xe8\x69\xad\x93\x22\x16\xcd\x6c\x41\xf3\x44\x16\x72\x04\x67\x4d\x78\x54\x11\x74\xd2\x66\x5b\x95\xd0\xaf\x5d\xb9\xe8\xea\xab\x63\x61\x10\x4a\x2b\xda\xa8\xc0\x4b\x97\xd5\xaf\xbc\x02\x87\x06\x4c\xad\xda\x01\x29\xfa\x24\x25\x57\x0b\x5d\x68\x5e\xb7\x73\xf5\x4f\xdc\x33\x53\xe3\x12\x0a\x40\x51\xc6\x12\xd4\x08\x01\x84\x34\x7a\xb0\x4c\x2a\xe7\x82\x49\xe7\xcc\xf7\x1f\x7a\xed\xbf\x7c\xe6\xc8\x7d\x7f\x18\x8f\x1f\xf5\x41\x3a\x65\xd9\x7f\xf5\xe6\x35\x77\xde\x16\x9b\xb5\x48\x49\xae\x5c\x6d\xb2\x16\x3c\x42\x71\x81\x79\xd4\x06\x18\x91\xd9\x0c\x40\x93\x00\xd3\x20\xe2\x40\x73\xe8\x3d\xd7\xd8\xc0\x00\x11\xb6\x8e\x1c\x9a\x7c\xe1\xc5\x06\xb0\x42\x6d\xe0\xea\x6d\x7e\x74\x39\x06\x25\xc0\x92\xc0\xcc\x48\x15\x4d\x15\x41\xa9\x9c\x31\xbf\xea\x47\xee\x19\xbe\xfd\xe6\xa0\x46\x62\x46\x48\x6a\x0a\xc0\x06\x29\xd8\x17\x01\xd3\x8d\x82\xca\x30\xfe\xd0\x63\x47\x7e\xf5\xbf\x1d\xfc\xd5\xff\x7c\xea\x4b\xf7\xb9\xb1\x71\x67\xdc\x0e\xba\xe4\xc6\x9b\xea\x8b\x17\x13\x98\x21\x6b\xf2\x62\x18\x2a\x1a\xda\xbb\x78\x04\x11\xcd\x69\x15\xba\x09\xa8\x8a\x16\x89\x68\xd9\xd2\xe5\x37\xee\x2a\x42\x14\x0d\xd3\xcf\x3d\x77\xf6\xe1\x87\x5c\xeb\x02\x85\x38\xb0\x6d\x33\x6d\x59\x67\xec\xaa\x7d\x6b\xca\x09\x34\x00\xb0\x1a\x2b\x6a\x94\xe6\xe0\xa6\x4f\xff\x64\x5c\xb7\x56\x94\x2b\x79\x69\x65\xaf\xc1\xc4\xaf\x49\xe3\xe8\xc4\xd5\x35\xeb\x07\xd7\x18\x9f\x9a\xf8\xce\x93\xed\x13\xa7\x94\x41\x55\xfd\x65\xcb\x6b\xc3\x8b\x08\xd9\x00\x92\x7c\x9e\x80\x14\xe9\xdd\x3b\x07\xad\xc7\x42\x32\x24\x00\x33\x14\x23\x30\xdf\xc8\x37\x6d\xac\x6d\x5a\x47\x06\x76\x61\xb2\x7c\x75\xff\xcc\xab\xaf\x5c\x38\xfe\x3a\x3b\xc0\x7a\x73\x68\xc7\x55\xbc\x78\x49\x14\xe3\x0a\xd8\x06\x00\xe0\x01\x67\x7e\xf8\x5a\xa6\x9d\x2e\x94\xb2\x71\xdd\xe5\x7f\xed\xa7\xbb\x79\x93\x15\x02\x86\x37\x78\x98\x2a\x2b\xa8\x92\x27\xe3\x0c\x1c\x4d\xcd\xb4\x5b\x93\x81\x82\x30\x84\xbe\x3a\xd6\xfb\x7a\x76\xeb\x74\x9e\x4b\x7a\x5a\x7b\xf7\xce\xc1\x9e\x80\x33\x5d\x28\x62\x2a\x59\x6d\x60\xe9\x2d\xbb\xdb\xb5\x4c\x58\xc3\x89\xf3\x27\x9f\x3f\x70\x7e\xff\xc9\x33\xaf\x1c\x36\xc0\x32\x84\xe5\x57\x6f\xaf\x5d\xbe\xb6\x40\x34\x4d\xe2\x0d\x32\xc4\x8c\xf0\xf4\x13\xcf\x9c\xf9\xee\xa3\xec\x64\x86\x78\xc9\xad\xb7\xae\x79\xff\x6d\x28\x26\x7c\x91\x45\xc6\xe6\x2c\x60\x62\x18\x94\x0c\x09\x48\x4a\x27\x81\xa3\x92\x91\x31\x03\x11\x56\xe2\xf8\x1e\xb6\xca\x16\x78\x1d\x5c\xe8\xdd\x8c\x99\x90\xb2\x22\x02\x1b\xc6\x00\xe8\x46\x96\x2c\xbb\x69\xd7\x74\x14\x06\xc9\x87\x17\x6f\xfd\xf1\x1f\x83\xd8\xf5\xeb\x37\x97\x0a\xa6\xb1\xb9\x72\x45\x63\xdb\x15\x13\x7b\x5e\xc6\xa9\x56\xcf\xb0\x80\x00\x40\xad\xf6\x81\xcf\xfc\xee\x8d\xdb\xd6\xc7\x35\xab\xa8\xd6\x1c\xd8\x78\x79\xd7\x82\x91\xb3\xf9\x27\x85\xde\x70\x3a\x53\xa7\xd1\xcc\xc4\x28\x34\x6a\x79\xad\x5e\x43\x57\x06\xa8\x15\xa5\x76\x5a\x62\x91\x80\xd3\xea\xa7\x08\x04\xf6\xee\xbd\x8a\x7b\x67\x7d\x51\x44\x32\x06\x43\x6b\x36\x06\x77\xed\x80\xe1\x21\x8a\xa2\xa2\xb2\x7c\x64\xe0\x9e\xf7\x0f\x7e\xfc\x4e\xbf\x65\x34\xaa\x46\xc6\x6e\x9e\xf7\x5f\xbf\x83\x97\x8f\x88\x69\x65\x53\x01\x30\x34\x07\x48\xc7\x4f\xec\xfb\xb5\xdf\x18\x9a\xee\x80\xa8\x10\x18\xb3\x29\x5d\xa2\xe3\x9a\xc5\xa7\x77\xd4\x5a\x81\x4e\x2b\xf9\xdd\xd7\xf2\xe5\xab\x0b\x50\x44\xa4\x33\xe3\x7a\x7e\x5c\x51\xcd\x12\x0a\x00\x0d\x81\x4c\x0d\x71\x01\x2f\x64\xf7\x0e\x5c\xc2\x2a\xc0\x99\x58\x04\xd2\xfe\xe6\xc8\x5d\x37\x75\x4d\x23\x61\x66\xbe\xdf\x35\x24\x8f\x48\x9e\x84\x42\xa0\x19\xb4\x8e\xe1\xe2\x6b\xae\x3c\xb9\x66\xf9\xb9\xbd\x07\x40\x2b\x22\xb2\xa1\x21\x22\x43\x1c\xff\xfe\x63\x27\xbe\xf6\xad\x25\x9f\xfc\xd1\x02\x8d\x84\x98\xdd\x9b\x23\x57\xf2\xda\xc8\x5d\xef\xed\x5f\x39\xda\x3f\x32\x5c\xbf\x76\x93\x2d\x59\xaa\x66\xae\xce\xc7\x9e\xfa\x81\x9e\x1b\x8f\x12\x1c\xe4\xac\xce\x30\x28\xaa\x53\x41\xe4\x05\x8c\xe4\x75\x0b\x7d\x27\x31\x32\x13\x8a\x4a\x64\xae\x96\xad\x5f\x5f\xdb\xba\xb1\x30\xac\x47\xea\xec\xd9\xfb\xf4\x17\xff\xcc\xac\x03\x54\xc6\x02\x56\xdf\x79\xc7\xb2\x0f\xde\x36\x43\x6a\x8b\x06\x16\xed\xd8\x31\xf9\xf4\x5e\x35\x05\x0c\x80\x0a\xc2\x88\xe4\x00\xb0\xec\xec\xf9\xc2\xef\xde\x7a\xed\x76\xbf\x65\xa3\x8a\x73\x82\x66\x84\xea\x44\x41\x01\x35\x79\x32\x01\x21\xab\xd7\xaf\xdf\xd9\x7f\xcd\xd5\x84\x20\x19\x82\xd9\x00\xf1\xcc\xeb\x87\x0e\xde\xff\x4d\x7f\x61\xca\xb1\x37\x31\xb2\xc4\xe0\x59\xf8\xc7\x42\xa7\xef\x22\x92\x92\x70\x2c\x99\x42\x63\x60\x74\xf7\xf5\x7e\xb0\xde\x8e\x92\x4f\x77\xce\x3d\xfb\x4c\xeb\x1b\xf7\xf7\xb1\x3a\xb2\xa2\xd0\x73\x35\xbf\x78\xe7\x86\xc6\x8a\x15\x62\xb8\xec\x86\xdd\x47\xbe\xfe\x58\x24\x44\x2c\xbd\x03\x8f\x99\x1a\x44\x46\x17\x2c\xbf\x70\xf6\x07\xbf\xfe\x99\xdb\xfe\xfd\xbf\x6e\x0d\xf6\x47\x13\x08\x49\xb5\x45\x68\x40\x64\xce\x99\x37\x73\xa2\xe6\x08\x89\x8c\x81\x51\x07\xd4\xda\x4f\x3e\xb7\xe7\xf3\x5f\xc2\x57\x5e\x73\xc9\x4d\x8c\x92\xaa\xcc\x6c\xa0\xd5\x04\x5c\xb0\xc3\xf1\x3b\x71\x2e\xe6\x84\x5b\xae\xc5\x58\x3f\x7e\xea\xd4\x6f\xfc\x9e\xb2\x6b\x8d\x4f\x9d\x7e\xfc\xa9\x4c\x4a\x24\x50\xb5\x8c\xb0\xfb\xd2\x2b\x27\xbf\xf0\x07\x03\x2b\x56\x94\x18\x6b\xdd\xb2\xcf\xba\xfa\xda\x81\x73\x7f\x78\x3f\xd4\xfa\x88\x72\xf9\xe1\x01\x0e\x4a\x48\xb5\x52\x5b\xcf\xee\x79\xe9\x17\x7f\x75\xd1\xd6\x8d\x05\x1b\xb5\x63\xb9\xe7\xd5\xdc\xa9\x9b\x9e\x6a\x3d\xf4\x14\x9c\x9a\x10\x51\xea\x69\x7e\xa2\xc8\xcc\xf8\xf9\xb3\x7b\x5f\xeb\xee\x3d\x34\x30\xd9\x6e\x80\x18\xa2\x99\xcd\xee\xa1\xb1\x2a\x4a\x2e\x64\xae\xf6\xc2\xa6\x90\x1b\x00\x46\x60\x84\xe8\x55\xc8\xa8\x24\xee\x12\x02\x82\x03\x24\xd1\x5c\x55\xd9\xd4\x14\x0d\x23\x52\x44\x76\x00\x0a\x1a\x49\xeb\x8a\xaa\x0a\xce\x05\x41\x63\xf6\xc6\x5c\x76\xac\x66\x2c\xc0\xc1\x05\x22\x65\x05\x54\x96\x4c\xa0\x30\x27\x48\x0c\xe2\x01\x7c\xd4\x68\x2e\xa1\xdb\x81\x2b\x8c\x0b\x18\x04\x45\x01\x48\x46\xdd\x77\x36\x56\x73\x81\xe7\xa0\x01\x38\x35\x23\x0b\x6c\x08\xca\x8a\x7d\x11\x8d\x41\xcd\x10\xb0\xe0\x64\x84\x45\x21\x63\x00\x67\x31\x39\xb1\xbd\xb1\x18\x78\x64\x0c\x46\x64\xa6\x01\xb4\xc4\x0c\x29\x28\x29\x11\xa3\x03\x2d\x2c\x28\xab\x81\xa2\x89\x33\xb4\x90\x3a\x9f\x31\x47\xc5\xa0\x80\x14\x28\x15\xe6\x49\x45\x80\x21\x12\x54\x58\xd2\x77\xf8\xb1\xf0\xf7\x62\x44\x4d\x0c\x3c\x34\x42\x20\x97\xf6\x0f\x60\x6c\x90\x6c\x98\x49\x23\x69\x66\xce\x52\x84\x8e\xb1\x68\x42\x0b\x02\x1b\x99\xb1\xaa\x02\x46\x43\x0f\xa4\x4c\xdd\xd4\x25\x32\xef\x44\x01\x94\x8d\x49\x30\x19\xaa\x2d\xbd\x14\xa1\x00\x59\xd2\x67\x19\x20\x72\x84\xd4\x60\x81\x85\x5d\xf2\xfe\x17\x23\x78\x91\xec\xff\x62\x09\xd8\x3c\x72\xd7\x6c\xee\x4f\xaf\xd1\xfd\x86\x37\x97\xda\x3f\x54\x21\x8d\x50\x7a\x70\xa7\x98\x60\x9f\x50\xb1\x1c\x05\xa1\x64\x44\xe3\x5e\x23\x09\xc8\x30\x90\xa5\x75\x0b\xd1\x22\x93\x33\x14\xb0\x88\x96\x0b\x72\x52\xb2\xa1\x2a\x90\x72\x22\x35\x24\xf3\x1a\x27\x87\x7c\xe2\x26\x24\x8c\x0b\x19\x78\xad\xe0\xa1\x6f\xb3\xe6\xd9\xdb\xb5\xd7\x2e\x3d\xad\xbe\xf1\xf9\x38\x7f\x04\x2f\x7a\xd2\x1b\xfe\xd3\x39\xcc\x55\x2f\xed\xbe\xf7\xfd\x37\xad\x15\x21\x18\x11\x18\x29\x28\xaa\x30\x10\x48\x52\xe2\x7b\x35\x00\x55\x02\x27\x89\x73\x41\xac\x14\x09\x0b\x4e\xed\x11\x90\x84\x5d\x21\xe7\xb4\x22\xa0\x7a\x50\x90\xe8\x0d\x22\x71\x44\x46\x40\x52\x60\x05\x40\xd3\x0a\x63\x91\x98\xf5\xa9\xf3\x07\x65\x6a\x8a\x1a\x56\x3c\x1e\xc4\xb7\x19\xb5\x37\xef\xa4\xbf\x81\xe2\x8d\xb3\x12\xd5\x4b\x32\xbd\x0d\x10\x2f\xbe\x8a\x67\x13\xa1\x7a\xff\xaa\xc6\xa3\xd7\xda\xec\x55\x50\x20\xb5\xcd\xde\x6c\xf0\xac\xb7\x23\x86\x84\x0d\xac\xac\x7d\x64\xe8\x0d\x48\x21\xe1\x4e\xaa\x1f\xb7\xa4\x21\x05\x49\x44\x00\xee\x35\x79\x10\x95\x90\x15\x04\x21\x25\x40\x54\xdc\x56\xd3\xd4\x6b\xee\xb5\xb7\x90\x34\xfd\x22\x56\x51\xac\x7a\x86\xf6\xb9\xc0\xaa\x37\xbb\x80\x2f\xba\xda\xde\xc0\x09\x9d\xfd\xb5\x2e\xf5\xe2\x20\xcc\x97\x08\xcf\xb6\x5b\xdc\x25\x63\x3f\xab\xba\xc5\x5e\xfe\x53\x6a\xd3\xe0\x3c\x54\x03\xc2\x5b\x23\x5e\xd3\xa9\x0c\x7b\x86\x10\x33\x67\x09\x8b\x00\x00\x26\x9c\x54\x6c\xa0\x3d\x9f\x86\x80\x21\x24\x91\x3b\xce\xff\x05\x0c\x2d\xb9\x04\x00\x10\x8c\xa5\x32\xad\x19\xf4\xe8\x27\xf3\x3e\x53\x9d\x5d\x50\xd2\x8b\x27\x29\xaf\xce\xd1\x98\x10\xde\xe2\xaa\xbc\x48\x3a\x69\xf3\x70\x35\x6f\xf1\xcc\x8b\xe6\x30\xbe\xf1\x4e\x52\x8d\x71\x25\x70\xc1\xd9\x70\xb7\xf4\xe9\xf7\x7e\x88\x00\xd1\xd0\x55\x45\x80\x4b\xa7\x76\xaf\x0b\x31\xef\xf2\x9e\x95\x83\xcc\x3e\xb5\x2a\xdf\x54\xb0\x30\x98\x0f\x2c\x9e\xb3\xda\xe0\xa5\xc0\x30\x9c\xed\x7d\x5f\xf4\xca\xf6\x46\xfb\x34\xbe\xa1\xf3\x3a\xef\x09\xb3\x29\x6c\x38\xeb\xe2\xef\x2d\x96\x06\xb3\xae\xfc\xb7\x6e\x11\xe3\xdb\xdd\x8b\x67\xf3\x62\xa0\xba\x2e\xa0\x72\xbb\xd0\x2c\x66\x67\xd6\xa1\x52\x6d\x4c\xdf\x72\x16\x5e\xcc\xe5\x9a\x8d\xa6\xb7\x4b\x3b\xcf\x56\x31\x13\x7b\xb8\x6b\x7c\xab\x8a\x85\x5d\xb4\x4a\xe3\x1b\xd6\x8e\xb7\xeb\x69\xc3\x7c\x30\x1e\x5e\x9c\xf3\x37\x37\x7c\x73\xef\x10\xe7\x7f\x28\xd5\x4f\xe2\xac\x71\xe9\x92\x85\xd0\xcd\xde\x2b\x0c\xe7\x62\x8b\x2a\x45\x6b\xb5\xfa\x80\xd3\xaa\xe5\x0a\xbd\x20\x2e\x7b\xab\x49\xde\x2b\xc2\xd9\x1b\x0a\x00\x55\xe3\xb8\x1a\xb2\x2a\x64\x11\xd2\x99\xe1\xed\x35\x8e\xf3\xd6\x98\x5e\xfb\xcf\xe6\x7f\x06\xd0\xe3\xfc\x40\xcf\xcd\xf9\x56\xaf\x30\xb7\x9b\xb0\x79\xb3\x13\xe7\x7d\x32\xd8\xfb\x98\xad\x37\xb0\xf3\xdf\xf6\xa5\x73\x05\xcd\x6c\x3e\x08\xdb\x14\x80\x12\x51\x48\xd3\x70\x52\x02\x9d\xc4\xf9\xd3\xc3\xe6\x22\x11\xf1\x2d\x9a\x4d\x30\xef\x57\xbd\x44\xd0\x80\x17\x6b\x20\x66\x87\x6f\xf6\xf2\x79\xf3\x0f\x05\x2b\x66\x19\xcd\x8e\xfe\xc5\xe3\x38\xd7\x46\xb7\xb7\xea\xdf\xe0\x6c\x66\x55\xc5\xd0\xe8\x8d\xfc\xa5\x6f\xb4\x37\x7a\xb3\x49\x4e\xa9\x56\x34\x3b\x3f\xe7\x95\xa1\x0c\x00\xdc\xfc\x4f\xad\x5a\xee\x04\xa2\x42\x50\x2b\xd1\x62\xef\x0e\xe2\x0d\x6b\x48\x9e\x7a\x6c\x25\x9c\xdd\x10\xda\xfc\x3b\xb7\x21\x2a\x18\xaa\xaa\xea\x25\x13\x91\x99\x81\x2a\x70\xd7\xac\x69\xb3\x67\x29\x34\x88\xf1\x6d\xb0\xc5\xb3\xf2\x99\x44\x02\x00\x00\x1f\x9b\x49\x44\x41\x54\x21\x97\xe4\x78\x76\x7f\x8a\xbd\x29\x62\x66\xaa\xc9\xb3\x87\x6f\xd7\xbf\x26\x42\x44\x20\xa2\x39\x3f\xb0\x69\x8c\xa6\xb3\x3e\xc8\xaa\x6a\x81\xcc\xd5\x8b\xa7\x6f\x56\xd2\x12\x35\x99\xa3\xf7\x54\xac\x65\xc7\x4e\xd0\x18\xd0\xd0\x58\xc0\x80\x8a\x20\x71\xa0\x3f\xbf\x7c\xd5\xa2\x35\x2b\x6b\x03\xfd\xd4\x68\x18\x82\xb5\xbb\xc5\xf8\x85\xe9\xe3\x27\x5b\x07\x8f\xe5\xd3\x1d\xe7\x10\x09\xb4\xda\xd3\x56\x6f\x5a\xab\x15\xd3\x14\xd1\x96\x2c\xae\xaf\x5c\x5e\x25\x64\x11\xb0\x1a\x2a\xc4\x89\x0b\xe5\xf1\x13\x48\x8a\xc6\x68\x98\x02\x8b\x00\xd0\x4c\xa9\xbf\x2f\x5f\xb5\x02\xf2\xba\xf5\xe8\xc5\x04\x26\xd5\x7d\xa6\x82\xe9\x5b\x8c\xa1\xd3\x69\x5f\x98\x94\xa9\x19\x57\x84\x1a\x23\x80\xa6\x93\x8f\x10\xfa\x65\x4b\xfc\xb2\xa5\xd6\xa3\x47\x23\x90\x61\x25\x0f\xec\x09\xbd\xc0\xda\xdd\x6e\xa7\xdd\xb9\x30\x89\x53\xd3\x4d\x25\x60\xb5\x2c\x6f\x6e\xd9\x24\x59\x06\xa6\x0a\x46\x86\x48\x54\x5e\x98\x8a\x27\xc7\xb0\x2c\x8c\x80\x94\x1c\xa0\xa2\x15\xa6\xd9\xb2\xa5\xf9\xd2\x25\x44\x60\x60\x64\x04\x48\xe4\x2c\x1c\x39\xe1\x94\xd0\x89\xa6\xca\x5c\x2b\xcf\x57\xbc\xff\x86\xe1\x5b\x76\xd3\x86\xd5\xf9\x92\xc5\xf5\x7a\x9f\xcb\xf2\x08\xa0\xa1\x0c\xad\x56\xf7\xfc\xf9\xf8\xea\xeb\x67\x1f\x7c\x64\xfc\xf9\x97\xea\xdd\x2e\x12\x9a\x19\x1b\xce\x6a\xd0\x0c\xcd\x45\x88\x8e\x97\x7f\xf4\xce\x91\xbb\xef\xb4\x02\x01\xa1\x93\x59\x2d\x42\xae\x38\xf1\xcc\x73\x87\xff\xeb\x67\x39\x14\x6c\x9e\x00\x01\xc4\x10\x10\xc8\x44\xdd\xea\x95\xab\xfe\xca\x4f\xb9\x15\x6b\x82\x45\x00\x25\x23\xa3\xa8\x40\x6c\x64\xa8\x69\x9f\x81\x2a\xd4\xe9\xc6\x89\xa9\x78\xe2\xd4\xd8\x63\x4f\x4e\x3d\xfb\x7c\x53\x24\xd9\x3e\xcd\x78\xf0\xc6\x5d\x4b\x3f\xf6\xe7\x22\x33\x88\x22\x28\x59\x1e\x59\x0d\x85\xcc\x02\xa5\x1c\x4e\x68\xb4\x42\x28\xdb\xf1\xfc\x78\x6b\xcf\xbe\x13\x0f\x3f\x42\xc7\x4f\xa2\x73\xf5\x6b\xae\x5e\x79\xcf\x07\xa7\x43\x49\x84\xa0\x84\xcc\x70\xea\xcc\xc9\x2f\xfc\xfe\xf8\x13\x4f\xb8\xba\x63\x20\x36\x10\x91\x76\xa3\xb6\xf6\x93\x1f\x6b\x5c\x77\x8d\x3a\x53\xb4\x2c\x78\x74\xc4\x13\xa7\x5f\xfa\x37\xbf\xe2\xbc\x9a\xaa\x02\x66\x93\xcb\x87\xb7\xfd\xf4\x27\x86\x6f\xdf\x9d\xaf\x58\x15\x81\x0b\xc6\xae\x26\x82\x92\x61\xdd\xc7\xe1\x41\xbf\x76\x4d\x73\xdb\x96\xfe\x5d\x57\xd2\x97\xef\x9b\xf8\xfa\x83\xd9\x64\xd7\x27\xcc\x4b\x95\x83\x62\x91\xa0\x64\x28\x86\xfb\x57\x7f\xf8\xfd\xe5\x95\x9b\x51\x3c\xaa\x22\x0b\x01\xe5\xca\x43\x84\xb5\x6f\x5f\x5e\xbe\xb4\x07\x9c\x99\x9a\x92\x19\x10\xa5\xdd\x77\x7f\xa3\xb6\x71\x5d\xbe\x6e\x63\xb0\x68\x20\xa8\x9c\x54\x69\x64\xa0\x04\x01\x0d\xd3\xd9\x0d\xac\x09\x24\x45\xab\xbe\x7b\xc7\xd9\x2f\xff\xc9\xa9\x3f\xf8\xd3\x0c\x51\x4d\x08\x28\x1b\x59\xdc\xdc\xb2\xa9\xeb\x7d\x32\x49\x83\xe6\x4c\xd1\xd0\x9c\x62\x4e\xc0\x0a\x25\x72\xae\xe0\x58\x58\xe2\xf0\x4d\xbb\x07\x76\xed\x38\xf0\x1f\xff\xbb\x1e\x1d\x9b\x7e\x71\xaf\x7e\xec\xee\xbe\xab\xae\xc6\xae\x96\x2c\x00\x5c\xbb\x62\xc3\xa2\x73\x67\x27\x5e\xdf\x1f\xa7\xc6\x89\xc4\x8c\x66\x0a\x5d\x7e\xdb\x8d\x23\x1f\xba\x95\x56\xae\x2e\x99\x4a\x14\x54\x1c\x32\x3b\xf2\x6b\xdf\xd3\xd3\x17\xf8\xd3\xcd\xe1\x80\x2e\xf6\x0f\x6d\xfa\xf9\x9f\x5e\x76\xcf\x87\xe2\xa2\x91\x28\x0e\x8c\x03\x88\x92\x08\x83\x92\x61\x12\xa6\x09\x90\x61\x36\x32\x38\xbc\x79\xb4\x7d\x72\xbc\x7d\x7c\x2c\x2f\x44\xc9\x22\x99\x57\x03\x00\x25\x88\x48\xcd\x5d\xd7\xad\xfa\xf8\x87\x67\x80\x14\xc8\x4c\x49\xa4\x04\x54\xa5\x2c\xf3\x7a\xee\xec\x99\xa7\x9f\xaf\x39\x02\x50\x61\x00\x20\x56\x88\x2a\xbc\x72\xd9\xf0\xad\x37\xd0\xe0\x70\xd0\x28\xa6\x6a\x29\x2b\x53\x14\x63\xd2\x20\x0b\xaa\x05\x0d\xe6\x3a\x60\xe0\x32\x5c\xb6\xa8\x7f\xf9\x92\xf6\xc1\x93\x9d\x63\x27\xc1\x43\xe1\x70\xe0\xea\xed\x03\x3b\x77\x14\x68\x01\x54\x40\x23\x18\x6b\xa8\x3a\xfe\xa6\x4e\x40\x0c\x4a\xc5\x00\x26\x86\x65\xa3\xd9\x58\xbd\x7c\xa0\xbf\x79\xe6\xd1\xa7\x8b\x0b\x67\x2f\xcc\xcc\xac\xbe\xf1\xe6\x28\x1c\x21\x44\x01\x63\x57\x1f\x19\x2c\xc6\x4e\xcf\xec\x3f\xec\x01\x4c\xcc\x96\x2e\x1f\xfd\xeb\x9f\x72\x5b\xd7\xab\x82\x88\x23\x25\x70\x32\xf1\xf0\xa3\xc7\x7f\xfd\x8b\xb5\xf6\x0c\x19\x5a\xcc\xf3\xa5\x1f\xb9\x63\xd5\xdd\x77\x15\xbe\xde\x02\x0a\x4c\x01\x22\xb3\x0c\xa0\x0c\xb5\x66\x06\x66\xda\xfd\x86\x0d\x04\x67\xc1\x54\xca\xd2\x68\xf1\xea\xf5\x3f\xf3\xb3\xdd\xcb\x57\x77\x28\xad\x52\x96\x8e\x56\x4e\x39\x02\x8d\xde\xf5\xfe\xae\xcb\x32\xf3\x18\x04\x41\xd9\xc0\x09\xa8\x01\x0c\x0d\xf5\x6d\xdf\xe6\x46\x96\x98\x08\xa4\x54\x63\xc3\xd9\x93\x4f\xd2\xdb\x24\x51\xac\x02\x80\x46\x38\x78\x18\x0f\xec\xc7\x7d\xaf\x0f\xec\x3b\x34\x70\x61\x22\xe7\x88\x68\x04\x92\x05\xc3\xe8\x60\x74\xcd\xb2\xf7\xdf\x64\x9c\xa3\x40\xb2\x34\x1b\x20\x60\x75\x6c\x41\x30\x77\x61\xda\x1d\x38\xcc\xaf\xbd\xae\xfb\xf7\xfb\x53\x27\x07\x43\x41\x14\x29\xa1\xb5\xa2\x74\x5c\xde\xb8\xe9\xfa\xc6\xd6\xcd\xd0\xed\x4e\x3d\xfe\xd4\xd1\x3f\xfa\xe3\x2c\x53\x32\xf0\xc0\x5c\x22\x2d\x5d\x36\x72\xf7\xfb\x1b\x97\xaf\xc7\xae\x45\xa5\x35\x7f\xfe\x43\xf5\xed\x57\x96\xce\x19\x00\x0b\x34\x84\xfa\xc7\xc6\xf7\x7f\xee\x8b\x38\x7e\xbe\x4b\xe2\x0a\x47\xc5\x60\xf3\xf2\x4f\xdd\x33\xd3\x68\x60\x34\x40\x35\x04\x8f\x81\x4f\x8c\x1d\xfe\xea\x03\xe7\x9e\x7b\xa5\xd4\x38\xb0\x71\xdd\xfa\x7b\x3e\xe4\xb7\x6e\x2e\x02\x39\xe3\x42\x8d\xb7\x8e\xae\xb9\x7d\xd7\xd9\x23\x27\xac\x35\xed\x24\xed\xbd\x1d\x0a\xb9\x91\xc5\x23\xbb\x77\x4e\x80\x63\x23\xb2\xc8\x22\x1e\x50\x0c\x23\x43\x89\xd8\x58\x3b\x3a\x7c\xd5\xb6\xa9\xef\x3d\xe2\xd9\xb1\x50\x0f\xcf\x5b\x71\x2f\xd1\x80\xb0\xf2\x95\xd6\xa6\x66\x9e\xfb\xa5\xff\x1a\xc7\x4e\x0a\xf8\x4c\x40\x57\x0f\xed\xf8\xd9\x9f\xac\xed\xdc\x59\x42\x28\x9c\x03\x23\x97\xe7\xf5\xb5\x2b\xb2\xfe\x7e\x77\xa1\x8c\xc9\xf7\x99\xe0\x00\xc6\x24\xb1\x96\xb9\xc3\x8f\x3d\x73\xf2\x4b\x5f\x73\x93\x53\x5d\x2f\xe4\xf3\xc5\x3b\xaf\xd9\xf2\x57\x3f\x15\xfb\x07\xba\x94\x02\xf7\x58\xea\x7d\xc3\x5b\xb7\xca\x0f\x5e\x82\xf1\xf3\xa7\xbf\xfe\xf5\xa1\xed\xeb\xdc\xf6\xed\x21\x2a\x28\x45\xe0\xc1\x5d\x3b\x87\x6e\x7d\xe9\xf8\xde\x23\xc3\x3b\xb6\x0e\xdc\x71\x93\x0e\x0d\x61\xd4\x92\x01\x4d\x86\x41\x5e\xf9\x1f\xbf\xef\x5f\x39\x08\x14\x11\xc0\x75\x91\x57\xdc\x74\x9d\xae\x5e\xd6\x31\xcc\x50\xeb\x48\xc1\x89\x1d\x1b\x3b\xf0\x9f\x7e\x73\xe2\xbb\x8f\x63\x0c\x08\xe5\xe4\x4b\x2f\xed\x3d\x7a\x62\xdd\xdf\xfa\xb9\xfa\xb5\x57\xf9\xa0\x59\xd9\xf1\x67\xa7\x60\x60\x70\xb2\x9e\x17\xed\x19\x67\x26\x80\x8a\x5c\x2a\xae\xbe\xeb\xd6\xf6\x40\x43\x88\x09\x14\x20\xc6\x13\xa7\x3b\x9d\xb2\xbe\x71\xbd\x92\x05\x95\xe6\xf2\xe5\xc3\xef\xd9\x31\xf6\xc4\x93\x83\x9a\xe8\x8c\x6a\xbd\x6c\xe3\xf9\xdb\x46\x36\x70\x22\x3a\x76\x22\x7b\xfd\x10\x50\x3d\x02\x84\x33\x47\xf7\x0d\xde\xbf\xf3\xfa\x1b\x24\x16\x25\x2b\x18\x98\x43\x68\xe4\xe4\x5d\x97\x2c\x62\xef\x10\x68\x48\x60\xac\x48\x66\x3c\x39\x9d\x1d\x3b\x99\x9d\x3d\x97\x3b\x33\xe3\x23\x27\xce\xac\xbe\xeb\xd6\x81\xad\x5b\xbb\xb9\x37\x8c\x00\x0a\x08\xd6\xdf\xaf\x0a\x19\x62\x78\x75\xef\x91\xdf\xb9\xef\xca\x7b\x37\x94\xf5\xac\xcc\x98\x85\x8a\xbc\xbe\xec\xee\x3b\xcf\xef\x3b\x3e\x7c\xdb\x75\xf5\x2d\x1b\x66\x4c\x33\x73\x60\xca\x35\x39\xf6\xc0\xc3\x67\x1f\xfc\x5e\x5e\x16\x81\x2d\x17\x72\xc6\xd9\xa2\xf7\x6c\x47\x25\x02\x06\x88\xa6\xe2\xca\xd8\x7e\x79\xff\x91\x6f\x7c\x6f\x91\x05\xcb\x8c\x63\xf0\x51\x8b\x27\x5e\xe8\xae\xfd\xb6\x3b\x7d\xfa\xf0\xfe\xd7\xa7\xf7\xee\x8f\x47\x8e\xd1\xb9\x29\x9d\x9a\x06\x26\x2c\x82\xe3\x2c\x08\xc5\x66\x7d\xe4\xce\xdd\x6a\xe4\x0c\x29\x46\xb5\x30\xf1\xfc\x2b\x17\x4e\x9e\xdb\xb1\x75\x53\x2c\xa3\x31\x48\xb3\xd1\xd8\xb8\xa1\xb6\x76\x95\xbc\x7e\xc2\x03\x47\x12\x03\x15\x83\x04\x18\x32\x02\xad\xd0\x4b\x18\x93\xb6\x37\x43\x5f\x48\x3d\xe2\x58\x2d\x42\x5f\x6e\x8a\x82\xde\x47\x06\x44\xd5\x58\x76\x3a\x31\x96\xc8\x40\x56\xf9\x07\x15\x51\x81\x8c\x91\xb9\x32\x0f\x23\x99\xa1\x24\xd3\x1d\xf4\xe5\x85\xa1\x51\xe6\x02\x29\x45\xc2\x08\x93\x93\x65\xce\xb9\x58\x1e\x64\xe6\xc9\x3d\xc7\xbe\xfa\xe0\xca\x9f\xb8\xfb\x82\x16\xde\x72\x0b\x04\xeb\xd6\x6c\xf9\x85\xbf\xcc\x03\x83\x1d\x46\x8f\x88\xc6\x24\x56\x1f\x3f\xfb\xfc\x6f\xfd\x9e\x3f\x7b\x5a\x48\x13\xca\xc1\x09\xb9\xe1\xf5\x1b\xa2\xa8\x73\x81\x00\x9c\xa1\xce\x74\x4e\xbd\xb8\xb7\x59\x06\xce\x4c\x44\xc9\x65\x12\x81\x2d\x1e\xf9\xda\xd7\xe1\x4f\xfe\x8c\x4b\xf1\xd1\x08\x44\x0d\x32\xb0\x80\x26\xe4\x45\x15\x49\xfa\xb7\xae\x6f\x6e\xd8\xdc\x06\x72\x4a\x84\x0c\xad\xee\xf8\x77\x1e\xef\x4c\xce\xf0\xdf\xf8\x94\x33\x8a\x12\x22\x53\x7d\xe3\xba\xe1\x2b\xaf\x9c\xd8\x7b\xdc\x32\x31\xd3\x5e\xaa\xe5\x1c\x37\x33\x9d\x3e\x15\xb1\x58\xb6\xec\xbc\x96\x8d\xe0\x86\xb8\x39\x74\xc3\xc6\x6d\x7f\xe5\xa7\xda\x66\xa8\x8c\xe0\x0d\x8c\x5a\x53\xe5\xe1\x23\x32\x39\x5e\xc3\x54\xfb\x06\x41\x55\x52\x35\x53\x83\x5c\x5c\xb7\xaf\x7f\x7c\xe5\x52\xae\x7b\x71\x58\x5b\xb6\x64\xf7\x47\x3e\x52\x1b\x1d\x8d\xce\xbb\x08\xaa\xcc\x4e\xb5\x7d\xe1\xfc\x9e\x17\x19\x95\x8d\x80\xb8\x1c\x1f\x3f\xf7\xc7\xdf\x5c\xbc\x65\x8d\x7f\xcf\x76\x8d\xc8\x86\x85\xcb\x68\xfd\x6a\x14\x00\x62\x08\xe0\x4c\x1d\x87\xd7\x3e\xfb\x3b\xb4\xef\xb0\x57\x35\xaa\xea\xc4\xae\xd6\xdf\xcf\xcd\xc1\x8e\x23\x85\x00\xe4\x40\xa0\xdb\x69\xb7\x4f\x8f\x25\x0f\x3b\x9a\x0b\x42\x0c\x06\x68\x54\x74\x11\x8c\x15\x48\x49\x18\x11\x81\x54\xf2\x88\xa8\x14\x33\x28\x24\xac\xfe\xc0\xcd\xdd\x5a\x33\x90\xaa\x19\x12\x34\xda\x9d\x33\x4f\x3d\x3d\x34\xbc\x68\xe6\xe0\x21\x1e\xbd\x5c\x14\x44\x62\x6d\xd9\x92\x45\x3b\xae\x3a\xff\xa7\x0f\x6b\xec\x90\x33\x04\x26\x53\x4e\x90\xa8\x5e\x8c\x00\x1a\x72\x7f\xe3\xb6\x7f\xf9\x4f\x99\x81\xcb\x08\xf5\xbe\x56\x33\xef\xe6\x19\x59\x10\x56\xaf\x28\x1e\xdc\xa1\xb1\x53\xdf\x7c\xc8\x59\x30\xce\x02\x50\x0f\x90\xab\x24\x8a\x4c\xb1\xab\x6b\xef\xb8\x75\xfd\xee\x1d\xbe\x90\x50\xcb\xac\xaf\x21\xcc\x1d\xcf\x4a\x9a\x49\x09\xec\x30\x74\xca\xc7\x5f\x9c\xdc\x77\x60\x08\x2b\x3c\x4f\xc3\xb4\xb5\xf7\x95\x23\xf7\xdd\xbf\xe1\x8a\x4d\xad\xbc\x8f\x04\x9c\x99\x25\xed\x05\x10\x20\x67\x0e\xce\x3d\xf8\xbd\x73\x0f\x3d\x96\xb7\x4a\x20\x07\x98\x78\xed\xe2\x9c\xe3\x50\x73\x66\x44\x29\x10\x8e\xd5\xa9\xe9\x4c\xab\x93\x99\x27\xf0\x11\x31\x51\xf2\xd5\x52\x84\x42\x44\x33\xaa\xcc\x03\x91\x88\x14\x33\x8b\x14\x41\x9a\x43\xcb\xdf\x7b\xf3\x34\x6b\xae\x10\x38\x6a\xe8\x4e\x3e\xfb\xa2\xb4\x27\xa1\xee\xcf\x3d\xfd\xc2\xe2\xcd\xeb\xa4\x40\x36\x32\xc2\xc6\xe6\xb5\x83\x57\x6e\x2a\x9e\x7f\x91\x10\x7a\xec\xea\x4b\x0f\xb1\x1d\xae\xcb\x32\xe7\x09\x7d\x19\xc5\xb9\x48\xc8\x6a\x4e\x45\xd8\x6a\xd2\x09\x47\x4f\xed\xfb\xcc\xef\x4c\xbf\xb4\xbf\x91\xd7\x44\x85\xd1\xaa\x74\xa2\xc4\x1e\x01\x0b\x6c\xa1\xcf\x53\x63\xc4\x8c\xba\x04\x0e\x20\x17\x44\x10\x30\xcd\x14\x5c\xd9\xd2\x27\x5f\x78\xfe\x97\x3e\x57\x13\xad\x30\xb1\xa6\x80\xc6\x66\x53\x8f\x3e\x77\xfe\x2b\xdf\x5c\xfa\xa9\x8f\xb6\x29\x49\xff\xd1\x52\xe4\x8f\x27\x3d\x79\xea\xe8\xe7\xbe\x92\x9f\x9e\xc8\x18\x4b\x4b\x8e\x8c\x64\x0e\x30\x2b\x39\x1d\x8a\x9d\x21\x44\x40\x07\x9a\x21\x12\x08\x58\x2a\xff\x9a\xa4\xae\x75\xea\x4f\x2a\x57\x9e\x18\xd4\x88\x58\x38\x28\xbd\x94\xa0\x6b\x6e\xb9\x59\x87\x06\xbd\xa9\x02\x80\x4a\xa3\x5b\x4c\x3c\xf2\x5c\xd3\x40\xdb\xdd\xa9\xe7\x5e\xf1\x31\x81\x24\xa8\x10\x75\xa3\x2b\xeb\xdb\x37\x46\x64\xd0\x8b\xd4\xea\xf3\x1f\x82\xc0\x84\x26\x32\xd9\x60\x52\x26\xa5\x84\x08\x68\x9e\x99\x99\xfc\xea\x77\x5f\xfa\x87\xff\xf6\xc2\x03\x8f\x0c\x22\xa1\xce\xab\xc9\x5b\x72\x0e\x91\xa9\x46\x07\x66\x42\x02\x66\xd4\x27\x9e\x23\xab\x02\x0a\xd4\x15\x71\xef\x91\xbd\xbf\xfe\xf9\xc7\xff\xc9\xbf\xab\x4d\xcf\xf8\xde\xff\x2e\x04\x82\xe6\x0c\xf0\xdc\xd9\x73\x5f\xff\xf6\xd4\xf3\x2f\x91\xd7\x92\x0d\x81\xcd\xc8\x1b\x65\x45\xfb\x95\xdf\xf8\x22\x1c\x3c\x54\x83\xa8\x22\xa9\x4a\x94\x86\x90\x62\xbb\xa5\xed\x16\x01\x22\x32\x1a\x81\x19\x39\x9f\xf7\x37\x1b\x05\xb0\x82\x52\x55\x29\x8b\x86\x61\xd9\x48\x7b\xd3\xea\xee\xf0\x50\x74\x75\x27\x9e\xd5\xf9\x00\x4e\xa1\x40\xeb\xfa\x6c\xf9\x5d\xef\x6d\x93\x37\xc6\x92\x09\x80\x61\xaa\x3c\x7a\xe8\x68\x18\x1c\x9a\xce\xf3\xf1\xd3\x13\xe5\xf1\x73\x19\x30\x89\x29\xa2\x5b\x34\xd4\xbc\x6a\x0b\x2f\x19\xb1\xf8\xe6\x5d\x20\x04\x6b\x86\xae\x7f\x71\x5f\xe3\xd0\xd1\x2c\xb4\x23\x8b\x22\x0b\x72\x24\x3a\x71\xfe\xec\x6b\x4f\xfe\xa0\xdc\x77\x88\x59\x22\x5a\x2d\x52\x2e\xa8\x22\x00\xe8\x0c\xc8\x40\x08\xd4\x13\xaa\xd4\x4e\x8d\x67\x7b\xf6\x0f\x9c\x39\xe3\xa5\x13\xbd\x44\x8f\x40\xdc\xed\x14\xfb\x5e\x3b\x70\xe2\xf1\x1f\x70\xb7\x23\xa8\xac\x55\x45\x5e\x08\xaa\x4a\x1f\xcb\xf8\x9e\x1f\x8e\x7d\xe7\x51\x67\xaa\x94\xf8\x7b\xec\x1c\x4d\x3c\xfb\xf2\xcc\x13\xcf\x86\xb2\xd5\xe1\xb4\x80\x41\x85\x83\x07\x74\xb1\xdb\xe1\xd3\x13\xbc\x62\x34\x9a\x02\x2a\x31\x6b\x56\x73\x2b\x96\x9b\x32\x11\xb7\x41\x11\xd1\x29\x74\x00\xd7\x7c\xf0\x7d\x97\x7f\xf2\x23\xc5\xf1\xb3\x47\x9e\x7b\x69\xec\x99\x17\xbb\x87\x8f\x0e\x9f\x6b\x71\x68\x89\xa3\xe6\xe8\xba\xda\x95\x1b\xa7\xb2\x2c\x58\x49\x0a\x4a\x04\xc3\x83\x37\xde\xfb\xf7\x09\xba\x4a\x18\xb9\x89\x83\x03\xa0\x4a\x06\x66\x20\xca\xfd\x9b\x37\xd6\x37\x6f\x98\x39\x3d\x96\xbf\x79\xa7\x0a\xfd\xe4\xc4\x83\xff\xe2\xdf\x5a\xa7\xb5\xf3\xe7\x3e\xd9\xb8\xe7\xc3\x25\x71\xc2\xca\x2c\xbd\x72\xd3\xda\x7f\xf1\xf3\x07\x86\xea\x63\x5f\xfd\x26\xa0\x05\x52\x54\xa4\xc4\x23\x56\x8c\x84\x01\x2d\x80\x34\xf3\xda\xd1\xef\x3e\xb1\xef\xf3\xbf\x3d\xbc\xfa\xb2\x9d\xf7\xfe\xdd\xfc\xf2\x35\x06\x79\x49\x50\x6b\x34\x36\xff\xe8\x9d\x9b\x37\x2c\xfd\xc1\xbd\xbf\x6a\x07\x0e\x6b\xc6\xa8\x0a\x00\x3e\x56\xe6\x26\x65\xb3\x10\xb9\xd5\xc5\x52\xbc\xf3\xa9\x1c\xca\x88\x6e\x62\x0a\x63\xd4\xe4\xc5\x04\x13\x84\x59\x2a\x03\xa1\x86\xe9\xe7\xf6\xe4\x04\x4a\xca\x60\xa2\x06\xfd\xcd\xc1\x9d\x57\x9d\x1b\x6a\x74\x13\x1f\x42\x25\xaa\x66\xab\x57\xf4\x6d\xdf\x56\xae\x58\x59\x5c\x7f\xf5\x8a\xbf\xf9\xd3\xef\xfb\xdc\x2f\xbf\xff\x17\xef\x75\xab\x96\xa9\x49\x19\xf1\xb2\xf7\xde\x06\x43\xfd\x1c\x35\x17\x74\xa6\x05\x4a\xab\x96\xc9\x55\x9b\xcb\xab\xb7\x86\xab\xb7\xe9\xb6\xf5\x90\xe5\x66\x16\x58\x01\xc0\x02\x0c\x8c\x8e\xd6\xae\xda\xdc\xf5\xfe\x4d\xf5\x90\x86\x56\x7a\x18\x30\x5d\x7a\xfa\xfc\xde\xff\xf8\x3f\x70\xdf\x61\x24\x49\xed\x38\x89\xda\x19\x1a\x5a\xf7\x33\x9f\x5c\x7a\xe3\xae\x58\x96\x05\x69\xe9\x7a\xf7\x21\xc0\x84\x6a\x4a\x76\xd8\xa6\xe2\x12\x8d\x9d\x1f\x3c\xff\xca\x17\xbe\xd2\x38\x3f\x45\x12\x13\xd4\xb7\x05\x56\xec\xd8\xb6\xf5\x17\x3e\x5d\xf4\xf5\x43\x34\x32\x48\x45\x31\x56\x44\x03\x97\xb0\xcf\x40\xac\xc4\x46\x06\x1a\xc9\xcc\x2c\x91\x46\xc8\x30\x8b\x14\x91\xe6\x77\xa7\xc8\x9b\x9c\x7c\xf4\x29\x2a\x4b\x00\x05\x53\x34\x08\xde\xd7\xaf\x58\x3f\xfa\x63\x77\x87\xe1\x41\xcc\x73\xd7\x57\x8f\x4b\x17\x2d\xfe\xe8\xed\xfd\x37\x5c\x23\xd1\x87\x98\xb7\xa2\x9f\xa6\x7c\x2a\x42\xa7\x2c\x90\xb0\xc8\xeb\x23\x77\xdd\xd2\x71\x14\xc9\xbc\x31\x9b\x3a\x04\x67\x4c\x31\xa3\x50\x83\xd2\x99\x12\x03\x2a\x5b\xc9\x98\x48\x04\xa5\xf7\x83\xdb\x37\x35\xd7\xae\x14\x91\xb9\x5d\xcc\x5c\xcd\x1e\x04\x18\x9c\x47\x93\x7a\xd1\x7d\xe5\x37\xbf\xc2\x52\x82\x84\x94\xd9\x1e\xc4\x85\xd5\xab\x96\x7e\xfc\xee\xee\x40\x83\xc1\xd0\xcc\x49\x55\x5e\x4b\x2d\x40\x2f\x88\x08\x91\xd5\x48\x06\x89\xc7\xbf\xf9\x78\xeb\xe5\x03\x08\xca\x0a\x25\x99\x13\x13\xad\xd7\xaf\xbf\x66\xe0\x43\x37\x83\x52\x32\xe7\x05\xa6\x40\x0c\x40\x64\xc0\xa9\xa1\x9d\xd2\x93\x48\x05\x2d\x32\x08\x62\x1e\xd1\x47\x26\xe0\x14\x54\x4f\xbd\xaa\x35\x39\x91\xc9\x57\xf7\x8e\x3f\xf2\x44\x03\xc9\x38\x91\xb7\x0c\x46\x46\xae\xf8\xf4\xcf\x6c\xfa\x27\x7f\x77\xe0\x27\x7f\x74\xe0\x27\x7e\xf4\x8a\x7f\xf5\x0f\x56\xff\xec\x8f\x77\x06\x07\x4b\x25\x04\xcc\xa2\xd6\xa2\x1c\xfb\xf6\x77\x70\x7c\xb2\x1d\xfd\xd2\x1b\x6e\xa0\xcb\x46\x52\x92\x58\xc9\x14\x98\x20\x44\xdf\x9a\xa1\x99\x29\x68\x75\xa8\xd5\xd5\xd6\x4c\x2c\x66\x2c\x46\x04\x9f\x78\xbe\x51\x74\x70\xf3\xfa\xfe\x4d\x97\x07\xaa\x6c\x76\xe9\x84\x47\xca\xc9\x43\x9d\x55\x04\x2d\x60\x80\xe9\x47\x9e\x9e\x7a\xfc\x89\x3c\x23\x1f\x73\x32\x36\xc4\x00\x98\x5f\xb9\x71\xe5\x07\xdf\x37\x1d\x0d\x10\x8c\x22\x40\xb2\x2f\x99\xb0\x71\xf0\x2e\x92\xa4\x45\xce\x61\x7f\x6b\x7a\xff\xef\xfd\xa1\xbf\x30\xe5\x00\x10\x08\x0d\x08\x62\x37\xf3\x1b\x3e\xf1\x23\xb2\x68\x51\x00\x65\x13\x04\x13\x9c\xcb\xe0\xd0\x2a\x70\x2b\xc1\x7e\x66\x23\x07\xcc\x48\x02\x57\x87\xfa\xd9\x83\x94\x23\x80\xa6\x94\x3f\xfc\xc2\x97\x6f\x5a\xbf\x9e\x36\xae\x0a\x21\x3a\xa5\x68\x1c\x06\x86\x06\x3e\x7c\xd7\xc8\x47\xee\x72\x0a\x5d\xb3\x96\x1a\x07\x22\xc4\xc0\xb1\x0e\x32\xfe\xf4\xcb\x33\x4f\x3d\x09\xed\x99\x22\x6b\x2c\x7f\xdf\x6e\xf4\x69\x92\x01\x99\xd6\x43\x39\xf9\xf8\x73\xe7\xf6\xec\x37\x52\x63\x76\x82\x00\x5a\x38\xf0\x5b\x37\x0d\xec\xde\x2d\xc0\x25\x45\x35\x68\x2c\x5b\x52\xbb\x72\x93\x3e\xf1\x04\x9c\x6f\xa5\x0c\x12\x61\x23\x21\x34\x23\x10\x52\x0d\xa4\x0e\x48\x10\x9a\x9d\xce\x81\xdf\xfc\xca\xae\xeb\xaf\x0b\xbe\xa6\x14\x95\xc4\x8b\xd1\xe2\xe1\x91\x3b\x6e\x39\xf5\xe8\xb3\x78\xf2\xa4\xd4\xc9\x48\x52\x2d\xd5\x2c\x2a\xd5\x0d\xd1\x20\x82\x61\x64\xcb\x50\xc7\x1f\x7f\xaa\xfd\xe4\x8b\xd9\x07\x6e\x73\xe4\xd5\xb1\x19\x44\xf4\xfd\xab\x46\x97\x7f\xf4\xce\xc3\xbf\xfd\xc5\x41\x34\x27\xaa\x96\x60\xe5\x55\x44\x98\x62\x8a\x0b\x75\x64\xcc\x4a\x00\x14\x2b\xb0\x9e\x91\x11\x54\x84\x08\x48\x9f\x1c\x65\x62\xed\xd7\x0e\xbe\xf4\xeb\x9f\xdf\xf2\xf7\x3e\x9d\xaf\xb9\xac\x85\x28\x8a\x5e\x31\x16\xd0\xc1\x5e\x1a\x90\x23\x34\x25\x90\x26\x6a\xd8\x7b\x60\xff\xe7\xbe\x08\xc7\xcf\x12\x20\xaf\x5c\x32\x7c\xf5\x15\x31\xf7\x81\x52\x63\x58\xb2\xee\xcc\x6b\x9f\xfd\x9d\xe2\xb9\x97\xb5\x66\xa0\xe2\x15\x48\x4d\x88\x86\xee\xbc\x7d\xe8\xda\xad\xb1\xd6\x30\x42\x41\x1f\xd1\x0d\x5f\x73\xcd\x85\x35\xdf\xeb\x9c\xdd\x23\x08\x46\x20\x6c\xc4\x15\x5b\x30\x25\x01\x58\x4f\xfc\x57\xec\x79\xfd\xcc\x03\x0f\x0d\xfd\xc8\x87\x03\x24\x4a\x2c\x28\x92\xdf\xb1\x79\xe5\x5d\xb7\x8c\x7d\xfe\x3e\x52\x67\x80\x85\x17\x25\x23\xb1\xe0\x04\x39\x85\x23\x71\xa9\xa6\x66\xc3\xc4\x7b\xbf\xf0\x07\xd7\xee\xbc\x32\x2e\x5b\x6c\xc0\xac\x9c\x21\x4b\x1d\x97\x7d\xfc\x83\x87\xbe\xf3\xdd\xce\xd8\xa9\x1a\x99\x69\xb4\xaa\x23\x89\x00\x84\xc0\x00\xce\x29\x59\xc2\x1d\x5a\xda\x16\x3b\x50\xb5\x04\x5a\xed\x45\x51\x11\x1a\xa3\xc9\x40\xa7\x33\xf9\xf0\xf7\xf7\xff\xf2\xe7\x3a\x8f\x3c\xe9\xc7\xcf\xd4\x28\x34\x1c\xd4\x10\x3d\x33\x79\x87\x0e\x1d\x43\xdd\x89\x9b\x3c\xd7\xfe\xde\xe3\xfb\x7e\xe5\xb3\xfa\xcc\x0b\x4e\x4c\x4b\x58\x73\xeb\xee\xe6\xe2\x25\x0d\xc8\x1b\xe8\xfb\x80\xeb\x48\xed\xe3\xa7\xcb\x23\x27\x07\xf3\xac\x9f\x71\xc0\xbb\x3c\xf7\xb5\xbc\x56\x27\x17\x4f\x9c\x6d\x1d\x3a\xde\xf4\xbe\x69\x54\x37\xf6\xe2\x96\x6c\xd9\x36\xb0\x69\x7d\xe9\x10\x50\xeb\x2a\xfd\x26\x7d\x18\xeb\xa4\x39\x49\x86\xd0\x0c\x8a\x60\xb9\xa0\x90\x39\x2d\x8e\x7f\xe9\x8f\x1b\x27\x4f\x0d\x01\x0e\x08\xd7\xd1\xf7\x45\x3f\x34\xb8\x64\xf9\xed\x37\xfa\xcb\x47\x35\xba\x5c\xb3\xa6\x71\x03\xb8\x06\x5c\x47\x6a\x1a\x37\xc4\x27\xe2\x33\x22\x11\xc8\xcc\x6b\xfb\x8f\x7e\xfb\xe1\xba\xc5\xa6\x69\x8d\x23\xb9\xc0\x0e\x1a\xcb\x86\x37\xdf\xf3\x81\x40\x4e\x60\x16\x64\x88\x00\xc0\xa0\x7d\x28\x0d\x8c\x7d\x20\x75\x92\x9c\xa2\x43\x49\xe3\xcb\x06\x00\xa6\xa4\xb3\x2d\x56\x67\x06\x11\x91\x58\xfa\x62\x31\xf5\xe0\x43\x3f\x7c\xed\x95\xa5\x37\xbd\xa7\x71\xc5\x06\xbf\x6c\x09\xf7\x0f\x60\x5e\x33\x42\x09\x65\x6c\xb5\x5a\xa7\xcf\x76\x5e\xdc\x3b\xf6\xf8\xd3\xf1\xe4\xc9\xba\x89\x3a\x36\x52\x1f\xc3\xd1\x07\x1f\x46\xca\x03\x21\x82\x78\x95\xa9\x97\x5f\xcd\x5b\xed\x88\x11\x0d\xbd\x50\xd7\xf9\x88\xc8\x68\xf1\xf4\xf9\xd3\x7f\xf8\xed\x78\xf0\x44\xd0\x88\x9a\xa1\xb2\xcb\xc1\x66\xa6\x7c\xdd\xc7\xf3\x67\xcf\x7e\xe7\x11\xfa\xe1\xab\x09\x3a\x20\x04\xae\xd5\xd6\x99\x99\x4c\x81\x05\x66\xbc\x39\x34\xdb\x77\xf0\xe0\xe7\xbf\xdc\xb7\x63\x8b\x45\x0c\xc4\x5e\x80\x48\xca\xd6\x44\x73\x69\xff\xe4\xb1\xe3\xed\x7d\xaf\x9f\xfe\xe3\x07\x0a\x4e\xf9\xd1\xce\x33\x4d\xbe\xbc\x57\x42\x59\x33\x12\x88\x48\xd0\x54\x3d\xf2\xa5\xaf\xf5\xf5\x35\x00\x49\x9c\x76\x19\xf2\x48\xb5\x28\x10\xc5\xf9\xdc\x4a\x23\x80\x74\x3e\xca\x08\xba\x47\x0e\x1f\xfd\xd3\xfb\x05\x1d\x9a\x18\x82\x43\x98\x7e\x79\xaf\x15\x2d\x65\xe5\x4a\x43\x84\x3d\xfa\x2f\xe2\xf7\xd6\x6c\x31\xd0\x14\xe1\xe2\x04\x83\x59\x1b\x00\xfb\xfb\x6b\xc3\xc3\xb5\xfe\x81\x2c\xaf\x23\x52\x88\xa1\xd3\x9a\x09\x67\xcf\xe1\xc4\xa4\x03\xb5\xcc\x90\xcc\xa9\x99\x60\xec\xef\x9f\xaa\xb9\x46\x17\x11\x30\x92\x3a\x35\x8b\x65\x56\x74\xa3\x53\x17\xa1\x16\x5d\x97\x19\x10\xbd\x68\x60\x8b\xae\x16\x1b\xae\x64\xa9\x07\x07\xe6\x84\xcb\x2c\x74\xb9\x13\x01\x5d\x51\xcb\xc5\xb9\x64\x66\x0d\x04\x42\xe0\x67\x26\x1b\x22\x24\xbe\xc3\x9a\x51\xcc\x02\x4d\x66\xb9\xf6\x79\x34\x50\x24\x03\xf0\xaa\x40\x9a\x95\x65\x36\x53\x14\x8d\x5a\xcc\x6b\xa6\x08\x94\x8e\xed\x40\x45\x41\xa1\x6c\x16\xda\xce\xcd\x09\x7a\xc1\xa8\xd8\x19\xec\x8f\x8e\x9d\x96\x42\xe6\x94\x00\x08\x18\xfc\x74\x87\x24\x32\x5a\x89\x48\xa6\x5e\xa1\x5d\xcb\x3a\x7d\x35\x56\x64\x15\x02\x02\x35\x34\x81\xb2\x83\x26\x49\x51\x85\x50\xd1\x37\x11\x01\xbf\xbf\xfa\x0a\x01\x82\x24\xc8\xab\x5a\x91\x68\xa2\xa0\x08\x6a\x3a\xdb\xee\x22\xc8\x00\x89\x29\x35\x25\x09\x88\xcc\x22\x03\x8a\x94\x64\xb5\x08\xce\xb0\x24\x70\x8a\x88\xd4\xf1\x82\x08\xac\xec\x85\x22\x9a\xb2\x3a\x11\x45\x70\x9a\x47\x0c\x42\xc1\x89\x53\x70\x42\x25\x22\x92\x39\x56\x4c\x09\xaa\x5e\x80\xc1\x02\x22\x02\x4b\x16\x44\x25\xd3\xba\x80\x21\x97\x5e\x40\x20\x33\x0b\x00\x09\x76\x66\x99\xa0\x22\x09\xa2\x07\x28\x51\xd8\x80\x95\x0c\x81\x15\x02\x81\x22\x20\x41\x1e\xb9\x70\x29\x68\x47\xbc\xa8\x02\x76\x08\x1c\xa0\x53\x8d\xac\x11\xc9\x29\x27\x5e\xb5\xb1\x81\x81\x20\x38\x33\x33\x50\x40\x56\x4b\x58\x65\x32\x50\x06\x25\x20\x48\xea\x3a\xec\x51\xb6\x0c\x01\x9d\x55\x2c\xd6\x84\x3c\xa8\x02\x2d\x00\xd1\x38\xc1\xbb\x00\x00\xbc\x19\x98\x45\x82\x80\xe6\x95\x12\xd8\x34\x91\x1f\x00\xa9\x66\x2a\x2e\x21\x22\x28\x2a\x7a\x41\x06\xe2\x88\x80\x29\xcb\x4a\x04\x53\x04\x3d\x09\x02\x22\xe7\x6a\x8a\x0e\x81\x1d\xf8\x54\x9b\x4f\x26\x50\x43\x8b\x04\x66\x26\x08\x79\x14\x50\x43\x64\x48\x59\x38\x00\x31\x75\x53\x31\x4b\x55\x2c\x56\x03\x24\x25\x06\x40\x4d\xb6\x45\x54\x23\xb4\xea\x4e\x63\x6c\x44\x2a\x81\x81\x95\xa2\xb3\xc0\x28\xa9\x5f\x05\xa8\xca\x86\x10\x5d\x6a\x8f\x19\x21\x28\x5a\x44\xf3\x0a\x40\x90\x00\x1f\xce\x0c\x11\x34\x65\x28\x27\x41\x1f\x32\xab\x81\xa1\x22\x56\xa1\x4e\x06\x80\x50\x91\x0e\xe6\xa4\x1e\x08\xb3\xad\x8b\x4a\x09\x80\x95\xec\xad\x3a\xd1\x54\xf1\xf0\x3a\x4f\xd0\x92\xc8\xb1\xa9\x42\x6f\x91\xd3\xe8\x56\x37\x53\x80\x2a\xd5\x06\x10\x15\x14\x01\x24\x69\xfb\x40\x67\x05\x00\x55\x3e\x58\x0a\xba\x43\x44\x80\xc8\x60\x96\x52\x5b\x92\x6b\x31\xc9\x01\xb5\xe2\x22\x1a\x22\xa0\x12\x60\xaf\x1b\x9c\x00\x7b\x86\x90\x22\x48\x52\x97\x5c\xab\x1b\x83\xb8\x14\x6d\x46\x6c\x56\x25\xa8\x44\xaa\xea\x56\x89\x6a\x56\x35\x98\x71\x2e\xdf\x4c\x7b\x75\x6f\x9e\x27\x57\xab\xc0\x17\x55\x3c\xd4\xac\xf2\xc8\xe6\x98\xc1\x95\xf8\x64\x4e\x92\x52\xad\x96\xda\x13\x96\x01\xcc\xd7\xcc\x54\x3f\xa2\xbd\x88\xcb\xb9\xd8\xd0\xd9\xc0\xb2\x59\xa1\xe6\x9c\x5e\x05\xe6\x45\x9f\x5d\x74\x16\x06\x9b\xaf\x25\x9e\x15\x7e\x56\xaa\x45\xab\xd4\x6e\xd5\x6b\xcd\x66\xa4\xf6\x04\x63\x80\xf3\xd2\x41\x7a\xd2\xb8\x2a\xe0\x63\x0e\x6d\x59\x6d\x57\x7a\x41\x67\xe9\xe5\xb0\xe7\xa5\x9c\x0b\xdc\x9a\x3b\x61\xd2\x5c\xe9\xc7\x66\xd9\x31\x38\xab\xbe\x4a\x87\xc8\xb7\x14\x77\xcd\xe9\xd0\xe6\xab\xca\xde\x2c\x4b\x00\x2f\xfe\x12\xdf\x44\x31\x86\x00\x17\xe5\x14\xbc\xad\xb0\xec\x92\xd7\x9b\xcf\x55\x7b\xe3\x9b\xb8\x04\xdb\x71\x89\xef\xf3\xa2\xf7\xf3\x86\x17\xbb\xf4\x1b\xf8\x86\x37\x82\x6f\xf2\xd5\xfc\xbf\xff\x37\x88\xdd\xff\x1f\x7f\xfc\xff\x11\xfc\xff\x23\xf8\x7f\xfa\xb1\xe0\xae\xb0\x9e\x1e\x79\x36\x03\xd1\x60\xee\xcf\xec\x5d\x7d\x56\xb2\x3a\x27\x0c\xad\x56\x6a\x9b\x63\x6a\x55\x4f\x98\x97\x31\xd9\xbb\xa7\xcc\xc9\x3a\xdf\x44\x73\x3f\xa7\x45\x9c\xa7\x4b\x4c\x6f\x60\x56\x28\xbf\x80\x06\x93\x85\xf6\x34\xa5\xa2\x99\xa1\x22\x2a\x80\x37\x35\x84\x88\xc8\x0a\x68\xc6\x80\x82\xa4\x04\x68\xc6\x62\x09\xb8\x88\x66\xac\x9c\x82\x6c\x0c\x34\xe5\xbb\x57\xfb\x4d\x90\x82\xd1\x4b\x4a\x7c\x4b\xd4\x28\x8e\x14\x80\x0c\x05\x0c\x7c\x26\x84\xa0\x52\xed\x3c\xa4\x32\x1e\xa0\x16\xac\xac\xec\x84\x90\x24\xa0\xa5\xdd\x1b\x82\x08\xa5\x5d\xf7\x42\x0e\xe1\x42\x5f\xc5\x08\xa9\x91\x17\x88\x09\xd0\x8b\x25\xcb\x5b\x4a\xa0\x33\x54\x83\x28\x2a\xa8\x86\x60\x02\x16\x91\x0d\x32\x03\x36\x30\xb5\x60\x26\xaa\xa0\xc0\x60\x0c\x66\x00\xa6\x64\x99\x39\x14\x62\x75\x14\x11\xc5\x45\x62\x27\xea\x12\x83\xcb\x28\x05\x00\xaa\x99\x82\x44\x84\x48\x2e\xd9\x14\xd1\xbc\x90\xd7\x14\x37\xa5\x60\x40\x6c\xaa\x24\xa4\x84\xf3\x85\xd7\xef\x3e\x7f\x71\xea\xb4\x21\x82\x78\xb1\xd4\xd4\xcb\x22\x19\x92\x30\xb5\x10\xb4\xd9\xe4\x45\x8b\x69\xf9\x32\x1e\x19\xce\xea\xb9\x76\xe2\xcc\xd9\xf3\xc5\xb9\xd3\xee\xcc\x99\xc6\x4c\xc7\x69\x6a\xfa\x10\x57\x91\x93\x9a\x45\x27\x46\xe5\x65\x8b\x3a\x8e\x9c\x25\xb0\x9e\x69\xbb\x70\xd3\xd3\xae\x28\x95\x43\x41\x55\xf8\xa6\x20\x77\x86\x86\x63\xdf\x80\x57\x51\x12\x56\x2f\x20\xf9\xd9\xb1\x5a\x69\x8c\x94\x74\x1e\x54\xa9\xee\x16\x72\x0e\x2e\xfc\x3a\x08\x40\x8a\x58\x0b\xa6\xa4\x05\x9b\x17\x04\x20\x81\xac\x18\x19\x59\x7a\xc7\xae\xd1\x0f\xdc\xde\x5c\x33\x4a\xcd\x81\x40\x5e\x01\xd8\x0a\xc6\x10\x67\x5a\x9d\x03\x47\x8e\x3f\xf0\xfd\xb1\x87\x1e\xf3\xe3\x13\x1c\xca\xd9\x26\x1e\x1b\xb6\xeb\xd9\xae\x7f\xf6\xb7\xfd\xe6\xcb\x25\x02\x13\xf8\x12\x5b\xed\xe9\x57\x7f\xeb\xcb\x13\xf7\x3f\xd8\x04\x23\x48\xca\x0e\x91\x46\xe3\xaa\xbf\xf8\x63\x2b\x3f\x78\xa7\x99\x08\x0a\x90\xa3\xf1\xf1\xa7\xef\xfd\x25\x39\xf0\x7a\x8a\x5d\x4c\xbb\xe8\x4a\xb8\xfc\xee\x5c\x07\xb1\xca\x88\x41\xa7\x46\x60\x02\x2a\x44\x64\x54\xf8\x5a\xed\x86\xeb\x6e\xfa\xeb\x9f\x76\xdb\x46\x2f\x58\x18\x4f\xe4\x26\x0c\x2e\x1a\x9a\x1a\x79\xe8\x1f\xe1\x6b\x96\x6c\xbc\xe6\xda\xd1\x8f\x7d\xf8\xb9\xff\xfc\x19\x79\xea\x65\x0e\x91\x55\x04\x80\x14\x23\x72\x79\xd9\x92\xe9\x15\x4b\xbc\xb1\x58\xcc\x24\x03\x5a\x71\xf9\x4f\x7d\xfc\xc5\x3d\xaf\xea\x91\xa3\x5e\xaa\x3b\x90\x91\x8b\x43\xc3\x33\x2b\x2f\x0b\x20\x00\x51\xd9\xe5\xb9\x0b\xb5\x1a\xf5\xc2\x32\x00\x89\x16\x1a\x19\xf5\x0e\xac\x83\x06\x91\xc1\x10\x22\x19\x19\xe6\x05\x04\xdf\x18\xbc\xe3\xd6\x9d\xf7\xfe\x9d\x62\xdb\x9a\x0b\x21\xb8\x48\x4e\xc9\x88\x22\x02\x30\x12\x7a\x85\x4c\x89\xa3\xea\x79\x0f\xe3\xdb\x47\x6f\xf8\xd7\xff\xb8\x79\xf3\xcd\x45\x5e\x43\x25\xb1\x54\xe7\x30\x31\xcc\xc5\xd5\x3a\x9e\x34\x0b\xe0\x40\xb8\xbe\x6e\x74\xc3\x5f\xfa\x44\xab\xbf\x1f\xd5\x39\x23\x40\x4a\xf9\xd3\x02\x14\x80\x55\x1d\x8a\x2b\xc9\x89\x26\x24\xa4\x24\x93\xc1\xac\x13\xe3\x5d\x3a\x82\x15\xb1\x47\x4d\x7a\xe7\x5f\x45\xef\x37\xad\xbf\xea\xe7\x7f\xae\xb5\x6c\xa4\x90\x92\x51\x0d\x54\x11\xb9\x84\x7c\xbc\xf0\x63\x6d\x9b\xee\x98\x95\x25\x96\xc2\xe2\x82\xd4\x02\x17\xc3\x23\x57\xfd\xc3\xbf\x2d\xa3\x2b\x0b\x04\xc8\x5c\x00\x11\x52\x45\xa9\xec\x20\x46\x4a\xaa\x28\xb1\x56\xef\xbb\x6d\xf7\xc8\xdd\x77\xb4\x12\xb7\xd4\x52\xd0\x87\x12\x88\x92\x44\x56\x03\x64\x43\x36\x8c\xac\x06\xe2\xb4\xca\x93\xc6\x85\x25\x7d\x2c\xf8\x3a\x88\x08\x5e\x80\x12\xcf\x17\xa8\x18\x1e\x5c\x73\xcf\x5d\xba\x66\x55\x0c\x8a\x48\x11\x94\x31\xd6\x26\xce\x4e\x3d\xfd\xc2\x99\xa7\x5e\x08\x13\xe3\xf5\xe5\x4b\x46\x6e\xb8\xb6\x79\xed\x55\xd2\x1c\x24\x75\x45\xb0\x16\x8b\x5b\x3d\xb4\xf5\x13\x1f\xd9\xf7\x1f\x3e\x4b\x9d\x0b\x75\xa3\x5a\x34\x36\x8b\xa4\xea\xcc\x29\x08\x49\x20\x15\xa0\xfa\xd2\x15\xab\x3f\xf2\xc1\xa9\x97\xf7\x16\x7b\xf6\x23\xa5\xf2\xb6\xb2\x49\x4a\xd0\x21\x13\x2f\xe0\x54\x0b\x54\x45\x26\xc3\x79\xf1\x9a\xf8\xee\xbd\x8a\x7b\x56\x30\x05\x94\xc2\x53\x6d\xc5\xca\x55\x77\xdc\xda\x8a\xa5\x4b\xc2\x7a\x72\x6e\x66\xe6\xcc\x7d\x5f\x7b\xe1\xde\x5f\x3c\xf9\xe5\xfb\xda\xdf\x7e\xf0\xe4\x6f\x7d\xe9\xf9\x7f\xfc\x8b\x53\xf7\x7f\x9b\x8a\x76\x24\x16\x46\x06\x6d\xc5\x72\xc9\xed\x37\xba\x65\xcb\x1d\xa1\x20\xb0\xa9\x13\xc7\x95\x52\x5b\x0d\x08\x0c\x15\xac\xa3\xd0\xb7\x65\xeb\xc6\x1f\xff\x0b\xdd\xc5\x83\x2a\x91\x4c\x0c\x4d\x88\x9c\xb2\xd3\x74\xb5\x1a\xa0\x91\x30\x81\x57\x14\x40\x81\x5e\x8a\x1a\xbe\x3b\x47\x30\x7d\xbe\xb1\xda\xfd\xaa\x79\x37\xb2\x79\x13\x0f\x0d\x89\x19\x90\x20\x6a\x66\x36\xb5\xe7\xb5\x23\x7f\xfa\xad\xbe\xe9\x4e\x7f\xde\xc8\xb9\x36\x90\x37\x9a\x13\x53\x7b\xbf\xfc\xd5\x99\x83\x87\x19\x35\x53\xcd\x23\x08\x38\x19\x5e\x34\xbc\x65\xb3\x30\x06\x4a\x2a\xbc\xa4\x8e\x03\x21\xf3\x4a\x80\x94\xcc\xd8\x31\x6b\x0c\xde\x72\xfd\x92\x0f\xdd\x52\x7a\x76\x86\x91\x20\x22\x78\x41\x56\x0c\x8c\x81\xab\x04\x48\x04\xa7\xa4\x00\x02\x0b\xba\x8f\x79\xa7\xee\x24\x15\x1f\xc0\x90\x9c\xaf\x5d\xb1\x56\x30\x39\x83\x00\x41\x5d\x37\x14\x07\x8e\x77\x8f\x9f\x71\x8e\x59\xd5\xcc\xc0\x84\x33\x6a\x1f\x1b\x0b\x87\x4e\x72\x11\x53\xd0\x3d\x2b\x1a\x70\x7d\xf3\x3a\x41\x76\x92\x2a\xe7\x09\xa4\x0a\x6a\xc8\x0a\xe9\x90\xe1\xa3\xa8\x08\x2c\x5f\x72\xd9\x9f\xff\x40\x63\xfb\xf6\x52\x88\x0c\xbc\x4a\xca\xb9\x57\x44\x9d\x6f\x0e\xb6\x37\xf5\x68\xbf\x2b\xaf\x62\xc5\xe4\xa7\x25\x20\x0f\x2b\x16\x47\x4c\x38\x6f\x00\x02\x28\x0a\x1b\x1b\xcf\xda\x45\x3a\xac\xa6\x18\x0a\x63\xcb\x67\x3a\x36\x76\xde\x42\x89\x90\xe8\x09\x28\x48\xbc\x6a\xa9\x18\x39\x64\xe9\x59\x92\x11\x4c\x09\xba\x0c\x5c\xc6\x58\xb6\x83\x57\x21\x28\x0a\x6b\x6e\xbe\x62\xf5\x5f\xf8\xa8\x2d\x5f\x6e\x01\x08\xac\xe3\x35\x92\xb9\x8b\x31\x15\x0b\x3c\x6c\xef\x70\x6d\xa6\x52\xe7\x13\xb2\x1f\xec\x0f\xc9\x93\x09\xa8\x64\x65\x2c\x63\xbb\xc3\xbd\x90\x5a\x45\x88\x04\x6a\x9a\x19\x68\xa7\x2b\x1a\x53\xab\x04\x00\x05\xc0\x37\xfb\xd2\xd9\x44\xd0\x66\x8b\xef\x68\x86\x04\x7a\xfe\xc2\xa9\x47\x9e\x76\x3e\x96\x2e\x32\xb0\x5a\x6d\xe8\x7d\x37\x2d\xfa\xd0\x2d\xb1\x96\x25\x55\x7a\x24\x60\x05\xd2\x2a\xff\xd3\xec\x9d\x1b\xc0\x77\xe0\x5e\xcc\x6a\x49\x77\x82\x6a\x16\x35\x09\x9f\xc8\x54\x01\x8d\x51\x3c\x0a\x99\x03\xab\x02\xed\x01\x19\x28\xa2\x48\xce\xc6\x69\xa5\x43\x2f\x00\x6a\x10\x95\x54\xa5\xd7\x39\x49\x5d\x44\x02\xcd\x01\xcb\x89\xc9\xd3\x7f\xf4\xc0\xa2\x91\xfe\xda\xae\xf7\x48\x44\x55\xa4\x45\x83\xcb\x3e\x7c\x1b\x0b\x45\x41\x67\x29\xbf\xc9\xe8\x9d\x05\xcd\xbc\x63\xfb\x41\x6f\xa6\x68\x29\xdc\x5e\xc7\x67\x98\x48\x41\xc8\x94\x15\xd8\x67\xd4\xdf\x08\x58\xcd\x4a\x34\x22\x73\x2c\xa4\x84\x34\xd0\x47\x8e\x2b\x78\x87\x02\x03\xc4\xf3\x17\x48\x4d\xb8\xc2\x83\x70\xe5\x52\x05\x00\x01\x12\x77\xf0\xf8\xe9\xdf\xfd\x7a\x76\xfc\x1c\x79\x32\x04\x2d\xad\x3e\xba\xba\xb6\x6e\xad\x80\xa7\x24\x00\xc7\x8b\x02\x68\xf1\xff\x9e\xab\x18\x53\xae\xa6\x22\x9a\xc4\xee\xd1\x93\x59\xca\x5f\x30\x46\x35\xaa\xf9\xc6\xf2\xa5\xd8\xd7\x4c\x36\x05\x00\x75\x16\xc1\x14\x9b\xcd\xbe\xe5\xcb\xd0\xe7\xa4\x94\x52\x86\xc8\x59\xf7\xe8\x71\x02\x33\x50\x00\x14\x42\x52\x62\x65\x54\x13\x00\x61\xc4\x50\xce\x3c\xfa\xec\xa9\xaf\x3d\x50\xd7\x28\xac\x09\xfb\x5a\x32\x44\x57\x25\x2a\x56\xbc\x02\x40\x36\x40\xb3\x58\xf5\xc9\x40\x68\x41\x2b\x33\xef\xc8\xa9\x8e\x52\x6b\x92\xb8\x08\x17\xf6\xed\xcb\x54\xc1\x58\x8d\x14\x54\x72\xea\xdb\xba\xa1\x71\xc5\x96\x4e\x37\x60\xe5\x97\x8b\x33\xa1\xa8\x5f\x75\x45\x7d\xd5\x0a\x44\xd6\x8a\x1b\x2f\x2c\xdd\xa9\x7d\x07\x40\x85\x45\x48\x29\x10\x18\xf4\xf4\xdb\xe0\x10\x30\x66\x86\xd3\x13\x67\xbf\xf1\x9d\x89\x47\x9f\xae\x65\x08\x80\x2c\x0e\x0d\xc9\x02\xa2\xa4\xdc\x6c\x43\x14\xea\x81\x2b\x08\xd2\x06\x48\x70\x61\x0b\x0b\x0b\xbf\x1f\xb4\x40\xa4\x88\x79\x54\x17\xca\x99\x7d\x07\xa7\x8f\x1e\x0b\x5e\x93\x6a\x5b\xa2\xe5\x1b\xd7\xad\xff\xd9\x8f\xf9\x5d\x3b\xce\x23\x4f\x75\xed\x94\xaf\xdb\x7b\x76\x6e\xf8\x99\x4f\xc0\x9a\xa5\x62\x25\xa0\x7a\xf0\x0d\xf1\x72\x68\x6c\x7a\xdf\xa1\x4c\xd1\x81\xb1\xa9\xd7\xc8\x20\x91\x24\x10\xb3\xa2\x13\x40\x30\x66\x0d\x87\x8f\x8e\xfd\xfe\xd7\xe1\xc0\x31\x47\x39\x48\x06\x9a\x3b\xc9\xc0\x1c\x6b\x4a\x32\x49\x5e\x9f\x14\xae\x82\x5e\xc0\xd9\xc2\x33\x30\xdd\x02\xcf\x40\x40\x34\x0e\x04\xcd\x28\x85\x8b\x74\xea\xcc\xb1\xfb\xbe\xb1\xf1\x9f\xff\xad\xa9\xd0\x75\x40\x79\xa4\xc8\x99\xbb\xf5\xba\x2d\xa3\x97\xd9\x2b\x87\xf5\x42\x5b\x17\x0d\xf7\xad\x5f\xcb\x6b\x97\x77\x6a\x9e\x23\x30\x62\x90\x30\x50\x6f\xee\xfd\xda\xb7\xdc\xb9\x09\xd0\x28\x94\x5c\xe6\xaa\xa8\x08\x0c\x46\x91\x90\x95\xb2\x68\x0a\xca\x18\xa7\x9e\x78\xe6\xf4\x9f\x3d\xb8\xfa\xaf\xfe\x54\xd7\xb9\x54\xeb\x16\x14\x02\x09\x4e\x1b\x66\x4e\x52\xfe\x2c\x1a\x62\x48\xca\xf2\x9e\xa5\xfd\xdd\x5a\x1f\x44\xf0\x82\xa5\xc3\xd2\x99\xa0\xf2\xcc\xf4\xd4\x83\x8f\x5f\xb8\xfe\xda\xc1\xf7\xee\x9a\x8a\xea\x04\xa3\xf9\xe0\xd9\xaf\xdb\xe0\x56\x8f\x8a\x81\x33\xf6\xec\x83\x81\x0a\x02\x9a\x42\x6c\x34\xdc\xd8\xc3\x8f\x9e\xbe\xff\xc1\x7a\xec\xc6\xe4\x47\x20\x17\xd8\x15\xc8\xac\x59\x32\xcb\x7a\x43\x25\x46\x62\x52\xb3\x4e\xeb\xc4\x37\x1f\xf0\x9b\x57\x2c\xbd\xe3\x76\x09\x2e\xa4\xfc\x37\x84\xa4\x48\x40\xad\x54\x20\x05\xa1\xfa\x4a\x58\x04\x0b\x8a\xe2\x5a\xf0\x7b\x31\xb2\x19\x02\x94\x04\xb9\x02\x33\x76\x4f\x9e\xdc\xff\xdf\x7f\xbb\xfd\xc4\xb3\xfd\x9e\x0b\x27\x80\x90\x97\xe8\x22\x13\xe4\xcc\x35\xf5\x5c\x90\x44\xd4\x14\x82\xdc\x5f\xcb\x8a\x27\x9e\x39\xf4\x9f\x3e\x5b\x3b\x7b\x26\x72\x14\xc2\x2c\x72\x4d\x18\xa3\x21\x3b\x30\x20\x90\x9a\xaa\x9a\x08\x12\x98\x77\xca\x9e\x28\x1e\x3d\x71\xee\x4f\xbe\xdb\x39\x70\x28\x66\x58\x10\x0a\x30\x8b\xcb\x4b\x17\xc8\xca\x1c\xcc\x24\x17\xc8\x7a\xf2\x2a\xb4\x77\xf7\x99\x24\x05\x8d\x46\x52\xa7\xe8\x04\x4b\x14\x76\x16\xf6\xbc\xfa\xf2\xbf\xf9\xb5\xf3\xbf\xfd\x47\x8b\xa6\x27\x6b\x59\x40\x57\x22\x45\xa0\xa8\x10\x03\x16\x0c\x81\x38\xf4\xb9\xb8\x62\x6a\xea\xd4\x6f\x7c\xf1\xd9\x7b\xff\xbd\x1e\x78\x8d\x2d\xc8\x6c\x74\x0b\x07\xcf\xd1\x53\x49\x5c\x78\x5f\x12\x15\x5a\x57\x01\x11\x42\x45\xf6\x02\x75\xb5\xc9\xef\x3f\x7f\xfe\x1b\x8f\x51\xa7\x8d\xce\x72\xd4\x1a\x18\x11\xd4\x19\x01\x42\x64\x41\x80\x5a\x80\x2c\x02\x29\xc2\xbb\x7b\x1d\x44\x03\x10\x54\xaf\x40\x86\x11\x09\x11\x30\x86\x3e\x03\x3d\x78\xf8\xc0\xaf\x7d\xee\xc0\xfd\xdf\x5a\x76\xf3\x0d\x97\x5d\xb9\x65\x68\xe5\x65\xb8\x68\x48\xf2\x1a\x45\xc4\xf3\x93\x53\xc7\x8f\x1d\xdc\xf3\xc2\xb9\x87\x9e\x70\x07\x8e\xd6\x8a\x2e\x83\x19\xa0\x53\x76\x82\x81\x15\xad\x3c\xf7\xe8\xe3\xf4\xfa\x11\xa7\x6c\x04\x06\x14\xc7\x8e\x67\x65\x47\x51\xc1\x4c\xc9\x80\xa2\x2f\x5a\xa7\xff\xe4\x01\x34\x1b\x58\xbf\xb6\x2b\xb1\x83\x80\xc4\x9d\x0b\x9d\xfe\x73\xad\x19\xd4\xb6\x57\x2f\x96\x6c\x5e\x42\x88\x0b\x89\xc0\x5c\x60\x06\x66\x12\x01\x69\x05\x5d\x4b\x22\x30\x02\x12\x35\x02\x05\x52\xf0\x82\x5c\x64\xae\x9b\xb3\x38\x52\x24\x03\xf4\xd1\x6a\x45\xe1\x63\xc1\x12\xb2\x5e\xa2\x4e\x8a\x1a\x4c\x89\x5e\x06\x50\x78\x54\xf4\x2e\xa2\x52\x0a\xe1\x8d\xb9\x94\x06\xca\xe2\x94\xd4\x50\x48\x51\xc1\x19\xb9\x98\xa2\xf5\x2a\x3d\xaf\xef\x0b\xdd\x80\xa5\xa1\x23\x00\x67\x2a\x96\x24\x9a\x0b\x59\xa0\xf9\x9f\x96\xb2\xd5\xdf\x47\x97\x6c\xd4\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82",24569 }},{"/_error.css", {"\x2f\x2a\x0a\x46\x72\x6f\x6d\x20\x53\x65\x61\x73\x6f\x63\x6b\x73\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x31\x2e\x31\x2e\x32\x2c\x20\x75\x6e\x64\x65\x72\x20\x2f\x73\x72\x63\x2f\x6d\x61\x69\x6e\x2f\x77\x65\x62\x0a\x0a\x43\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x28\x63\x29\x20\x32\x30\x31\x33\x2c\x20\x4d\x61\x74\x74\x20\x47\x6f\x64\x62\x6f\x6c\x74\x0a\x41\x6c\x6c\x20\x72\x69\x67\x68\x74\x73\x20\x72\x65\x73\x65\x72\x76\x65\x64\x2e\x0a\x0a\x52\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x20\x61\x6e\x64\x20\x75\x73\x65\x20\x69\x6e\x20\x73\x6f\x75\x72\x63\x65\x20\x61\x6e\x64\x20\x62\x69\x6e\x61\x72\x79\x20\x66\x6f\x72\x6d\x73\x2c\x20\x77\x69\x74\x68\x20\x6f\x72\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x0a\x6d\x6f\x64\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x2c\x20\x61\x72\x65\x20\x70\x65\x72\x6d\x69\x74\x74\x65\x64\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x74\x68\x61\x74\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73\x20\x61\x72\x65\x20\x6d\x65\x74\x3a\x0a\x0a\x52\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x73\x20\x6f\x66\x20\x73\x6f\x75\x72\x63\x65\x20\x63\x6f\x64\x65\x20\x6d\x75\x73\x74\x20\x72\x65\x74\x61\x69\x6e\x20\x74\x68\x65\x20\x61\x62\x6f\x76\x65\x20\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x6e\x6f\x74\x69\x63\x65\x2c\x20\x74\x68\x69\x73\x20\x0a\x6c\x69\x73\x74\x20\x6f\x66\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x64\x69\x73\x63\x6c\x61\x69\x6d\x65\x72\x2e\x0a\x52\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x73\x20\x69\x6e\x20\x62\x69\x6e\x61\x72\x79\x20\x66\x6f\x72\x6d\x20\x6d\x75\x73\x74\x20\x72\x65\x70\x72\x6f\x64\x75\x63\x65\x20\x74\x68\x65\x20\x61\x62\x6f\x76\x65\x20\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x6e\x6f\x74\x69\x63\x65\x2c\x20\x74\x68\x69\x73\x20\x0a\x6c\x69\x73\x74\x20\x6f\x66\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x64\x69\x73\x63\x6c\x61\x69\x6d\x65\x72\x20\x69\x6e\x20\x74\x68\x65\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x61\x6e\x64\x2f\x6f\x72\x20\x0a\x6f\x74\x68\x65\x72\x20\x6d\x61\x74\x65\x72\x69\x61\x6c\x73\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x2e\x0a\x0a\x54\x48\x49\x53\x20\x53\x4f\x46\x54\x57\x41\x52\x45\x20\x49\x53\x20\x50\x52\x4f\x56\x49\x44\x45\x44\x20\x42\x59\x20\x54\x48\x45\x20\x43\x4f\x50\x59\x52\x49\x47\x48\x54\x20\x48\x4f\x4c\x44\x45\x52\x53\x20\x41\x4e\x44\x20\x43\x4f\x4e\x54\x52\x49\x42\x55\x54\x4f\x52\x53\x20\x22\x41\x53\x20\x49\x53\x22\x20\x41\x4e\x44\x20\x0a\x41\x4e\x59\x20\x45\x58\x50\x52\x45\x53\x53\x20\x4f\x52\x20\x49\x4d\x50\x4c\x49\x45\x44\x20\x57\x41\x52\x52\x41\x4e\x54\x49\x45\x53\x2c\x20\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x2c\x20\x42\x55\x54\x20\x4e\x4f\x54\x20\x4c\x49\x4d\x49\x54\x45\x44\x20\x54\x4f\x2c\x20\x54\x48\x45\x20\x49\x4d\x50\x4c\x49\x45\x44\x20\x0a\x57\x41\x52\x52\x41\x4e\x54\x49\x45\x53\x20\x4f\x46\x20\x4d\x45\x52\x43\x48\x41\x4e\x54\x41\x42\x49\x4c\x49\x54\x59\x20\x41\x4e\x44\x20\x46\x49\x54\x4e\x45\x53\x53\x20\x46\x4f\x52\x20\x41\x20\x50\x41\x52\x54\x49\x43\x55\x4c\x41\x52\x20\x50\x55\x52\x50\x4f\x53\x45\x20\x41\x52\x45\x20\x0a\x44\x49\x53\x43\x4c\x41\x49\x4d\x45\x44\x2e\x20\x49\x4e\x20\x4e\x4f\x20\x45\x56\x45\x4e\x54\x20\x53\x48\x41\x4c\x4c\x20\x54\x48\x45\x20\x43\x4f\x50\x59\x52\x49\x47\x48\x54\x20\x48\x4f\x4c\x44\x45\x52\x20\x4f\x52\x20\x43\x4f\x4e\x54\x52\x49\x42\x55\x54\x4f\x52\x53\x20\x42\x45\x20\x4c\x49\x41\x42\x4c\x45\x20\x0a\x46\x4f\x52\x20\x41\x4e\x59\x20\x44\x49\x52\x45\x43\x54\x2c\x20\x49\x4e\x44\x49\x52\x45\x43\x54\x2c\x20\x49\x4e\x43\x49\x44\x45\x4e\x54\x41\x4c\x2c\x20\x53\x50\x45\x43\x49\x41\x4c\x2c\x20\x45\x58\x45\x4d\x50\x4c\x41\x52\x59\x2c\x20\x4f\x52\x20\x43\x4f\x4e\x53\x45\x51\x55\x45\x4e\x54\x49\x41\x4c\x20\x0a\x44\x41\x4d\x41\x47\x45\x53\x20\x28\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x2c\x20\x42\x55\x54\x20\x4e\x4f\x54\x20\x4c\x49\x4d\x49\x54\x45\x44\x20\x54\x4f\x2c\x20\x50\x52\x4f\x43\x55\x52\x45\x4d\x45\x4e\x54\x20\x4f\x46\x20\x53\x55\x42\x53\x54\x49\x54\x55\x54\x45\x20\x47\x4f\x4f\x44\x53\x20\x4f\x52\x20\x0a\x53\x45\x52\x56\x49\x43\x45\x53\x3b\x20\x4c\x4f\x53\x53\x20\x4f\x46\x20\x55\x53\x45\x2c\x20\x44\x41\x54\x41\x2c\x20\x4f\x52\x20\x50\x52\x4f\x46\x49\x54\x53\x3b\x20\x4f\x52\x20\x42\x55\x53\x49\x4e\x45\x53\x53\x20\x49\x4e\x54\x45\x52\x52\x55\x50\x54\x49\x4f\x4e\x29\x20\x48\x4f\x57\x45\x56\x45\x52\x20\x0a\x43\x41\x55\x53\x45\x44\x20\x41\x4e\x44\x20\x4f\x4e\x20\x41\x4e\x59\x20\x54\x48\x45\x4f\x52\x59\x20\x4f\x46\x20\x4c\x49\x41\x42\x49\x4c\x49\x54\x59\x2c\x20\x57\x48\x45\x54\x48\x45\x52\x20\x49\x4e\x20\x43\x4f\x4e\x54\x52\x41\x43\x54\x2c\x20\x53\x54\x52\x49\x43\x54\x20\x4c\x49\x41\x42\x49\x4c\x49\x54\x59\x2c\x20\x0a\x4f\x52\x20\x54\x4f\x52\x54\x20\x28\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x20\x4e\x45\x47\x4c\x49\x47\x45\x4e\x43\x45\x20\x4f\x52\x20\x4f\x54\x48\x45\x52\x57\x49\x53\x45\x29\x20\x41\x52\x49\x53\x49\x4e\x47\x20\x49\x4e\x20\x41\x4e\x59\x20\x57\x41\x59\x20\x4f\x55\x54\x20\x4f\x46\x20\x54\x48\x45\x20\x55\x53\x45\x20\x0a\x4f\x46\x20\x54\x48\x49\x53\x20\x53\x4f\x46\x54\x57\x41\x52\x45\x2c\x20\x45\x56\x45\x4e\x20\x49\x46\x20\x41\x44\x56\x49\x53\x45\x44\x20\x4f\x46\x20\x54\x48\x45\x20\x50\x4f\x53\x53\x49\x42\x49\x4c\x49\x54\x59\x20\x4f\x46\x20\x53\x55\x43\x48\x20\x44\x41\x4d\x41\x47\x45\x2e\x0a\x2a\x2f\x0a\x0a\x62\x6f\x64\x79\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\x79\x3a\x20\x73\x65\x67\x6f\x65\x20\x75\x69\x2c\x20\x74\x61\x68\x6f\x6d\x61\x2c\x20\x61\x72\x69\x61\x6c\x2c\x20\x73\x61\x6e\x73\x2d\x73\x65\x72\x69\x66\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x66\x66\x66\x66\x66\x66\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x63\x32\x31\x65\x32\x39\x3b\x0a\x20\x20\x20\x20\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\x20\x63\x65\x6e\x74\x65\x72\x3b\x0a\x7d\x0a\x0a\x61\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x66\x66\x66\x66\x30\x30\x3b\x0a\x7d\x0a\x0a\x2e\x66\x6f\x6f\x74\x65\x72\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\x74\x79\x6c\x65\x3a\x20\x69\x74\x61\x6c\x69\x63\x3b\x0a\x7d\x0a\x0a\x2e\x6d\x65\x73\x73\x61\x67\x65\x20\x7b\x0a\x20\x20\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x69\x6e\x6c\x69\x6e\x65\x2d\x62\x6c\x6f\x63\x6b\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x35\x30\x70\x78\x3b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x32\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x2e\x68\x65\x61\x64\x6c\x69\x6e\x65\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x35\x30\x70\x78\x3b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\x3a\x20\x62\x6f\x6c\x64\x3b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x33\x32\x70\x78\x3b\x0a\x7d\x0a\x0a\x2e\x66\x6f\x6f\x74\x65\x72\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x2d\x74\x6f\x70\x3a\x20\x35\x30\x70\x78\x3b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x32\x70\x78\x3b\x0a\x7d\x0a\x0a",1802 }},{"/_error.html", {"\x3c\x21\x2d\x2d\x0a\x46\x72\x6f\x6d\x20\x53\x65\x61\x73\x6f\x63\x6b\x73\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x31\x2e\x31\x2e\x32\x2c\x20\x75\x6e\x64\x65\x72\x20\x2f\x73\x72\x63\x2f\x6d\x61\x69\x6e\x2f\x77\x65\x62\x0a\x0a\x43\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x28\x63\x29\x20\x32\x30\x31\x33\x2c\x20\x4d\x61\x74\x74\x20\x47\x6f\x64\x62\x6f\x6c\x74\x0a\x41\x6c\x6c\x20\x72\x69\x67\x68\x74\x73\x20\x72\x65\x73\x65\x72\x76\x65\x64\x2e\x0a\x0a\x52\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x20\x61\x6e\x64\x20\x75\x73\x65\x20\x69\x6e\x20\x73\x6f\x75\x72\x63\x65\x20\x61\x6e\x64\x20\x62\x69\x6e\x61\x72\x79\x20\x66\x6f\x72\x6d\x73\x2c\x20\x77\x69\x74\x68\x20\x6f\x72\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x0a\x6d\x6f\x64\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x2c\x20\x61\x72\x65\x20\x70\x65\x72\x6d\x69\x74\x74\x65\x64\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x74\x68\x61\x74\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73\x20\x61\x72\x65\x20\x6d\x65\x74\x3a\x0a\x0a\x52\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x73\x20\x6f\x66\x20\x73\x6f\x75\x72\x63\x65\x20\x63\x6f\x64\x65\x20\x6d\x75\x73\x74\x20\x72\x65\x74\x61\x69\x6e\x20\x74\x68\x65\x20\x61\x62\x6f\x76\x65\x20\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x6e\x6f\x74\x69\x63\x65\x2c\x20\x74\x68\x69\x73\x20\x0a\x6c\x69\x73\x74\x20\x6f\x66\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x64\x69\x73\x63\x6c\x61\x69\x6d\x65\x72\x2e\x0a\x52\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x73\x20\x69\x6e\x20\x62\x69\x6e\x61\x72\x79\x20\x66\x6f\x72\x6d\x20\x6d\x75\x73\x74\x20\x72\x65\x70\x72\x6f\x64\x75\x63\x65\x20\x74\x68\x65\x20\x61\x62\x6f\x76\x65\x20\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x6e\x6f\x74\x69\x63\x65\x2c\x20\x74\x68\x69\x73\x20\x0a\x6c\x69\x73\x74\x20\x6f\x66\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x64\x69\x73\x63\x6c\x61\x69\x6d\x65\x72\x20\x69\x6e\x20\x74\x68\x65\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x61\x6e\x64\x2f\x6f\x72\x20\x0a\x6f\x74\x68\x65\x72\x20\x6d\x61\x74\x65\x72\x69\x61\x6c\x73\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x2e\x0a\x0a\x54\x48\x49\x53\x20\x53\x4f\x46\x54\x57\x41\x52\x45\x20\x49\x53\x20\x50\x52\x4f\x56\x49\x44\x45\x44\x20\x42\x59\x20\x54\x48\x45\x20\x43\x4f\x50\x59\x52\x49\x47\x48\x54\x20\x48\x4f\x4c\x44\x45\x52\x53\x20\x41\x4e\x44\x20\x43\x4f\x4e\x54\x52\x49\x42\x55\x54\x4f\x52\x53\x20\x22\x41\x53\x20\x49\x53\x22\x20\x41\x4e\x44\x20\x0a\x41\x4e\x59\x20\x45\x58\x50\x52\x45\x53\x53\x20\x4f\x52\x20\x49\x4d\x50\x4c\x49\x45\x44\x20\x57\x41\x52\x52\x41\x4e\x54\x49\x45\x53\x2c\x20\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x2c\x20\x42\x55\x54\x20\x4e\x4f\x54\x20\x4c\x49\x4d\x49\x54\x45\x44\x20\x54\x4f\x2c\x20\x54\x48\x45\x20\x49\x4d\x50\x4c\x49\x45\x44\x20\x0a\x57\x41\x52\x52\x41\x4e\x54\x49\x45\x53\x20\x4f\x46\x20\x4d\x45\x52\x43\x48\x41\x4e\x54\x41\x42\x49\x4c\x49\x54\x59\x20\x41\x4e\x44\x20\x46\x49\x54\x4e\x45\x53\x53\x20\x46\x4f\x52\x20\x41\x20\x50\x41\x52\x54\x49\x43\x55\x4c\x41\x52\x20\x50\x55\x52\x50\x4f\x53\x45\x20\x41\x52\x45\x20\x0a\x44\x49\x53\x43\x4c\x41\x49\x4d\x45\x44\x2e\x20\x49\x4e\x20\x4e\x4f\x20\x45\x56\x45\x4e\x54\x20\x53\x48\x41\x4c\x4c\x20\x54\x48\x45\x20\x43\x4f\x50\x59\x52\x49\x47\x48\x54\x20\x48\x4f\x4c\x44\x45\x52\x20\x4f\x52\x20\x43\x4f\x4e\x54\x52\x49\x42\x55\x54\x4f\x52\x53\x20\x42\x45\x20\x4c\x49\x41\x42\x4c\x45\x20\x0a\x46\x4f\x52\x20\x41\x4e\x59\x20\x44\x49\x52\x45\x43\x54\x2c\x20\x49\x4e\x44\x49\x52\x45\x43\x54\x2c\x20\x49\x4e\x43\x49\x44\x45\x4e\x54\x41\x4c\x2c\x20\x53\x50\x45\x43\x49\x41\x4c\x2c\x20\x45\x58\x45\x4d\x50\x4c\x41\x52\x59\x2c\x20\x4f\x52\x20\x43\x4f\x4e\x53\x45\x51\x55\x45\x4e\x54\x49\x41\x4c\x20\x0a\x44\x41\x4d\x41\x47\x45\x53\x20\x28\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x2c\x20\x42\x55\x54\x20\x4e\x4f\x54\x20\x4c\x49\x4d\x49\x54\x45\x44\x20\x54\x4f\x2c\x20\x50\x52\x4f\x43\x55\x52\x45\x4d\x45\x4e\x54\x20\x4f\x46\x20\x53\x55\x42\x53\x54\x49\x54\x55\x54\x45\x20\x47\x4f\x4f\x44\x53\x20\x4f\x52\x20\x0a\x53\x45\x52\x56\x49\x43\x45\x53\x3b\x20\x4c\x4f\x53\x53\x20\x4f\x46\x20\x55\x53\x45\x2c\x20\x44\x41\x54\x41\x2c\x20\x4f\x52\x20\x50\x52\x4f\x46\x49\x54\x53\x3b\x20\x4f\x52\x20\x42\x55\x53\x49\x4e\x45\x53\x53\x20\x49\x4e\x54\x45\x52\x52\x55\x50\x54\x49\x4f\x4e\x29\x20\x48\x4f\x57\x45\x56\x45\x52\x20\x0a\x43\x41\x55\x53\x45\x44\x20\x41\x4e\x44\x20\x4f\x4e\x20\x41\x4e\x59\x20\x54\x48\x45\x4f\x52\x59\x20\x4f\x46\x20\x4c\x49\x41\x42\x49\x4c\x49\x54\x59\x2c\x20\x57\x48\x45\x54\x48\x45\x52\x20\x49\x4e\x20\x43\x4f\x4e\x54\x52\x41\x43\x54\x2c\x20\x53\x54\x52\x49\x43\x54\x20\x4c\x49\x41\x42\x49\x4c\x49\x54\x59\x2c\x20\x0a\x4f\x52\x20\x54\x4f\x52\x54\x20\x28\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x20\x4e\x45\x47\x4c\x49\x47\x45\x4e\x43\x45\x20\x4f\x52\x20\x4f\x54\x48\x45\x52\x57\x49\x53\x45\x29\x20\x41\x52\x49\x53\x49\x4e\x47\x20\x49\x4e\x20\x41\x4e\x59\x20\x57\x41\x59\x20\x4f\x55\x54\x20\x4f\x46\x20\x54\x48\x45\x20\x55\x53\x45\x20\x0a\x4f\x46\x20\x54\x48\x49\x53\x20\x53\x4f\x46\x54\x57\x41\x52\x45\x2c\x20\x45\x56\x45\x4e\x20\x49\x46\x20\x41\x44\x56\x49\x53\x45\x44\x20\x4f\x46\x20\x54\x48\x45\x20\x50\x4f\x53\x53\x49\x42\x49\x4c\x49\x54\x59\x20\x4f\x46\x20\x53\x55\x43\x48\x20\x44\x41\x4d\x41\x47\x45\x2e\x0a\x2d\x2d\x3e\x0a\x0a\x3c\x68\x74\x6d\x6c\x20\x44\x4f\x43\x54\x59\x50\x45\x3d\x68\x74\x6d\x6c\x3e\x0a\x3c\x68\x65\x61\x64\x3e\x0a\x20\x20\x3c\x74\x69\x74\x6c\x65\x3e\x25\x25\x45\x52\x52\x4f\x52\x43\x4f\x44\x45\x25\x25\x20\x2d\x20\x25\x25\x4d\x45\x53\x53\x41\x47\x45\x25\x25\x20\x2d\x20\x4b\x65\x65\x70\x20\x43\x61\x6c\x6d\x20\x41\x6e\x64\x20\x43\x61\x72\x72\x79\x20\x4f\x6e\x21\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x0a\x20\x20\x3c\x6c\x69\x6e\x6b\x20\x68\x72\x65\x66\x3d\x22\x2f\x5f\x65\x72\x72\x6f\x72\x2e\x63\x73\x73\x22\x20\x72\x65\x6c\x3d\x22\x73\x74\x79\x6c\x65\x73\x68\x65\x65\x74\x22\x3e\x0a\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\x0a\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x6d\x65\x73\x73\x61\x67\x65\x22\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6d\x67\x20\x73\x72\x63\x3d\x22\x2f\x5f\x34\x30\x34\x2e\x70\x6e\x67\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x30\x30\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x31\x30\x37\x22\x3e\x0a\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x68\x65\x61\x64\x6c\x69\x6e\x65\x22\x3e\x48\x54\x54\x50\x5f\x53\x54\x41\x54\x55\x53\x3a\x20\x25\x25\x45\x52\x52\x4f\x52\x43\x4f\x44\x45\x25\x25\x20\x26\x23\x38\x32\x31\x32\x3b\x20\x25\x25\x4d\x45\x53\x53\x41\x47\x45\x25\x25\x3c\x2f\x64\x69\x76\x3e\x0a\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\x6e\x66\x6f\x22\x3e\x25\x25\x42\x4f\x44\x59\x25\x25\x3c\x2f\x64\x69\x76\x3e\x0a\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x0a\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x66\x6f\x6f\x74\x65\x72\x22\x3e\x68\x74\x74\x70\x5f\x73\x74\x61\x74\x75\x73\x20\x64\x65\x76\x65\x6c\x6f\x70\x65\x64\x20\x62\x79\x20\x39\x37\x31\x20\x53\x70\x61\x72\x74\x61\x6e\x20\x52\x6f\x62\x6f\x74\x69\x63\x73\x2e\x20\x53\x65\x72\x76\x65\x72\x20\x70\x6f\x77\x65\x72\x65\x64\x20\x62\x79\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x67\x69\x74\x68\x75\x62\x2e\x63\x6f\x6d\x2f\x6d\x61\x74\x74\x67\x6f\x64\x62\x6f\x6c\x74\x2f\x73\x65\x61\x73\x6f\x63\x6b\x73\x22\x3e\x53\x65\x61\x53\x6f\x63\x6b\x73\x3c\x2f\x61\x3e\x2e\x20\x43\x6f\x6e\x74\x61\x63\x74\x20\x43\x6f\x6d\x72\x61\x6e\x20\x4d\x6f\x72\x73\x68\x65\x64\x28\x63\x6f\x6d\x72\x61\x6e\x6d\x6f\x72\x73\x68\x40\x67\x6d\x61\x69\x6c\x2e\x63\x6f\x6d\x29\x20\x69\x66\x20\x74\x68\x69\x73\x20\x34\x30\x34\x20\x65\x72\x72\x6f\x72\x20\x73\x68\x6f\x75\x6c\x64\x20\x6e\x6f\x74\x20\x62\x65\x20\x68\x61\x70\x70\x65\x6e\x69\x6e\x67\x2e\x2e\x2e\x3c\x2f\x64\x69\x76\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x0a\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a",1980 }},{"/_jquery.min.js", {"\x2f\x2a\x21\x0a\x20\x2a\x20\x6a\x51\x75\x65\x72\x79\x20\x4a\x61\x76\x61\x53\x63\x72\x69\x70\x74\x20\x4c\x69\x62\x72\x61\x72\x79\x20\x76\x31\x2e\x35\x2e\x32\x0a\x20\x2a\x20\x68\x74\x74\x70\x3a\x2f\x2f\x6a\x71\x75\x65\x72\x79\x2e\x63\x6f\x6d\x2f\x0a\x20\x2a\x0a\x20\x2a\x20\x43\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x32\x30\x31\x31\x2c\x20\x4a\x6f\x68\x6e\x20\x52\x65\x73\x69\x67\x0a\x20\x2a\x20\x44\x75\x61\x6c\x20\x6c\x69\x63\x65\x6e\x73\x65\x64\x20\x75\x6e\x64\x65\x72\x20\x74\x68\x65\x20\x4d\x49\x54\x20\x6f\x72\x20\x47\x50\x4c\x20\x56\x65\x72\x73\x69\x6f\x6e\x20\x32\x20\x6c\x69\x63\x65\x6e\x73\x65\x73\x2e\x0a\x20\x2a\x20\x68\x74\x74\x70\x3a\x2f\x2f\x6a\x71\x75\x65\x72\x79\x2e\x6f\x72\x67\x2f\x6c\x69\x63\x65\x6e\x73\x65\x0a\x20\x2a\x0a\x20\x2a\x20\x49\x6e\x63\x6c\x75\x64\x65\x73\x20\x53\x69\x7a\x7a\x6c\x65\x2e\x6a\x73\x0a\x20\x2a\x20\x68\x74\x74\x70\x3a\x2f\x2f\x73\x69\x7a\x7a\x6c\x65\x6a\x73\x2e\x63\x6f\x6d\x2f\x0a\x20\x2a\x20\x43\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x32\x30\x31\x31\x2c\x20\x54\x68\x65\x20\x44\x6f\x6a\x6f\x20\x46\x6f\x75\x6e\x64\x61\x74\x69\x6f\x6e\x0a\x20\x2a\x20\x52\x65\x6c\x65\x61\x73\x65\x64\x20\x75\x6e\x64\x65\x72\x20\x74\x68\x65\x20\x4d\x49\x54\x2c\x20\x42\x53\x44\x2c\x20\x61\x6e\x64\x20\x47\x50\x4c\x20\x4c\x69\x63\x65\x6e\x73\x65\x73\x2e\x0a\x20\x2a\x0a\x20\x2a\x20\x44\x61\x74\x65\x3a\x20\x54\x68\x75\x20\x4d\x61\x72\x20\x33\x31\x20\x31\x35\x3a\x32\x38\x3a\x32\x33\x20\x32\x30\x31\x31\x20\x2d\x30\x34\x30\x30\x0a\x20\x2a\x2f\x0a\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x69\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x69\x73\x57\x69\x6e\x64\x6f\x77\x28\x61\x29\x3f\x61\x3a\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x39\x3f\x61\x2e\x64\x65\x66\x61\x75\x6c\x74\x56\x69\x65\x77\x7c\x7c\x61\x2e\x70\x61\x72\x65\x6e\x74\x57\x69\x6e\x64\x6f\x77\x3a\x21\x31\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x66\x28\x61\x29\x7b\x69\x66\x28\x21\x62\x5f\x5b\x61\x5d\x29\x7b\x76\x61\x72\x20\x62\x3d\x64\x28\x22\x3c\x22\x2b\x61\x2b\x22\x3e\x22\x29\x2e\x61\x70\x70\x65\x6e\x64\x54\x6f\x28\x22\x62\x6f\x64\x79\x22\x29\x2c\x63\x3d\x62\x2e\x63\x73\x73\x28\x22\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x3b\x62\x2e\x72\x65\x6d\x6f\x76\x65\x28\x29\x3b\x69\x66\x28\x63\x3d\x3d\x3d\x22\x6e\x6f\x6e\x65\x22\x7c\x7c\x63\x3d\x3d\x3d\x22\x22\x29\x63\x3d\x22\x62\x6c\x6f\x63\x6b\x22\x3b\x62\x5f\x5b\x61\x5d\x3d\x63\x7d\x72\x65\x74\x75\x72\x6e\x20\x62\x5f\x5b\x61\x5d\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x65\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x7b\x7d\x3b\x64\x2e\x65\x61\x63\x68\x28\x63\x64\x2e\x63\x6f\x6e\x63\x61\x74\x2e\x61\x70\x70\x6c\x79\x28\x5b\x5d\x2c\x63\x64\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x62\x29\x29\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x63\x5b\x74\x68\x69\x73\x5d\x3d\x61\x7d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x24\x28\x29\x7b\x74\x72\x79\x7b\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x2e\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x4d\x69\x63\x72\x6f\x73\x6f\x66\x74\x2e\x58\x4d\x4c\x48\x54\x54\x50\x22\x29\x7d\x63\x61\x74\x63\x68\x28\x62\x29\x7b\x7d\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x5a\x28\x29\x7b\x74\x72\x79\x7b\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x2e\x58\x4d\x4c\x48\x74\x74\x70\x52\x65\x71\x75\x65\x73\x74\x7d\x63\x61\x74\x63\x68\x28\x62\x29\x7b\x7d\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x59\x28\x29\x7b\x64\x28\x61\x29\x2e\x75\x6e\x6c\x6f\x61\x64\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x61\x20\x69\x6e\x20\x62\x57\x29\x62\x57\x5b\x61\x5d\x28\x30\x2c\x31\x29\x7d\x29\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x53\x28\x61\x2c\x63\x29\x7b\x61\x2e\x64\x61\x74\x61\x46\x69\x6c\x74\x65\x72\x26\x26\x28\x63\x3d\x61\x2e\x64\x61\x74\x61\x46\x69\x6c\x74\x65\x72\x28\x63\x2c\x61\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x29\x29\x3b\x76\x61\x72\x20\x65\x3d\x61\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\x2c\x66\x3d\x7b\x7d\x2c\x67\x2c\x68\x2c\x69\x3d\x65\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x6a\x2c\x6b\x3d\x65\x5b\x30\x5d\x2c\x6c\x2c\x6d\x2c\x6e\x2c\x6f\x2c\x70\x3b\x66\x6f\x72\x28\x67\x3d\x31\x3b\x67\x3c\x69\x3b\x67\x2b\x2b\x29\x7b\x69\x66\x28\x67\x3d\x3d\x3d\x31\x29\x66\x6f\x72\x28\x68\x20\x69\x6e\x20\x61\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x72\x73\x29\x74\x79\x70\x65\x6f\x66\x20\x68\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x66\x5b\x68\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x3d\x61\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x72\x73\x5b\x68\x5d\x29\x3b\x6c\x3d\x6b\x2c\x6b\x3d\x65\x5b\x67\x5d\x3b\x69\x66\x28\x6b\x3d\x3d\x3d\x22\x2a\x22\x29\x6b\x3d\x6c\x3b\x65\x6c\x73\x65\x20\x69\x66\x28\x6c\x21\x3d\x3d\x22\x2a\x22\x26\x26\x6c\x21\x3d\x3d\x6b\x29\x7b\x6d\x3d\x6c\x2b\x22\x20\x22\x2b\x6b\x2c\x6e\x3d\x66\x5b\x6d\x5d\x7c\x7c\x66\x5b\x22\x2a\x20\x22\x2b\x6b\x5d\x3b\x69\x66\x28\x21\x6e\x29\x7b\x70\x3d\x62\x3b\x66\x6f\x72\x28\x6f\x20\x69\x6e\x20\x66\x29\x7b\x6a\x3d\x6f\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x3b\x69\x66\x28\x6a\x5b\x30\x5d\x3d\x3d\x3d\x6c\x7c\x7c\x6a\x5b\x30\x5d\x3d\x3d\x3d\x22\x2a\x22\x29\x7b\x70\x3d\x66\x5b\x6a\x5b\x31\x5d\x2b\x22\x20\x22\x2b\x6b\x5d\x3b\x69\x66\x28\x70\x29\x7b\x6f\x3d\x66\x5b\x6f\x5d\x2c\x6f\x3d\x3d\x3d\x21\x30\x3f\x6e\x3d\x70\x3a\x70\x3d\x3d\x3d\x21\x30\x26\x26\x28\x6e\x3d\x6f\x29\x3b\x62\x72\x65\x61\x6b\x7d\x7d\x7d\x7d\x21\x6e\x26\x26\x21\x70\x26\x26\x64\x2e\x65\x72\x72\x6f\x72\x28\x22\x4e\x6f\x20\x63\x6f\x6e\x76\x65\x72\x73\x69\x6f\x6e\x20\x66\x72\x6f\x6d\x20\x22\x2b\x6d\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x22\x20\x22\x2c\x22\x20\x74\x6f\x20\x22\x29\x29\x2c\x6e\x21\x3d\x3d\x21\x30\x26\x26\x28\x63\x3d\x6e\x3f\x6e\x28\x63\x29\x3a\x70\x28\x6f\x28\x63\x29\x29\x29\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x52\x28\x61\x2c\x63\x2c\x64\x29\x7b\x76\x61\x72\x20\x65\x3d\x61\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2c\x66\x3d\x61\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\x2c\x67\x3d\x61\x2e\x72\x65\x73\x70\x6f\x6e\x73\x65\x46\x69\x65\x6c\x64\x73\x2c\x68\x2c\x69\x2c\x6a\x2c\x6b\x3b\x66\x6f\x72\x28\x69\x20\x69\x6e\x20\x67\x29\x69\x20\x69\x6e\x20\x64\x26\x26\x28\x63\x5b\x67\x5b\x69\x5d\x5d\x3d\x64\x5b\x69\x5d\x29\x3b\x77\x68\x69\x6c\x65\x28\x66\x5b\x30\x5d\x3d\x3d\x3d\x22\x2a\x22\x29\x66\x2e\x73\x68\x69\x66\x74\x28\x29\x2c\x68\x3d\x3d\x3d\x62\x26\x26\x28\x68\x3d\x61\x2e\x6d\x69\x6d\x65\x54\x79\x70\x65\x7c\x7c\x63\x2e\x67\x65\x74\x52\x65\x73\x70\x6f\x6e\x73\x65\x48\x65\x61\x64\x65\x72\x28\x22\x63\x6f\x6e\x74\x65\x6e\x74\x2d\x74\x79\x70\x65\x22\x29\x29\x3b\x69\x66\x28\x68\x29\x66\x6f\x72\x28\x69\x20\x69\x6e\x20\x65\x29\x69\x66\x28\x65\x5b\x69\x5d\x26\x26\x65\x5b\x69\x5d\x2e\x74\x65\x73\x74\x28\x68\x29\x29\x7b\x66\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x69\x29\x3b\x62\x72\x65\x61\x6b\x7d\x69\x66\x28\x66\x5b\x30\x5d\x69\x6e\x20\x64\x29\x6a\x3d\x66\x5b\x30\x5d\x3b\x65\x6c\x73\x65\x7b\x66\x6f\x72\x28\x69\x20\x69\x6e\x20\x64\x29\x7b\x69\x66\x28\x21\x66\x5b\x30\x5d\x7c\x7c\x61\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x72\x73\x5b\x69\x2b\x22\x20\x22\x2b\x66\x5b\x30\x5d\x5d\x29\x7b\x6a\x3d\x69\x3b\x62\x72\x65\x61\x6b\x7d\x6b\x7c\x7c\x28\x6b\x3d\x69\x29\x7d\x6a\x3d\x6a\x7c\x7c\x6b\x7d\x69\x66\x28\x6a\x29\x7b\x6a\x21\x3d\x3d\x66\x5b\x30\x5d\x26\x26\x66\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x6a\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x5b\x6a\x5d\x7d\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x51\x28\x61\x2c\x62\x2c\x63\x2c\x65\x29\x7b\x69\x66\x28\x64\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x62\x29\x26\x26\x62\x2e\x6c\x65\x6e\x67\x74\x68\x29\x64\x2e\x65\x61\x63\x68\x28\x62\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x2c\x66\x29\x7b\x63\x7c\x7c\x62\x73\x2e\x74\x65\x73\x74\x28\x61\x29\x3f\x65\x28\x61\x2c\x66\x29\x3a\x62\x51\x28\x61\x2b\x22\x5b\x22\x2b\x28\x74\x79\x70\x65\x6f\x66\x20\x66\x3d\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x7c\x7c\x64\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x66\x29\x3f\x62\x3a\x22\x22\x29\x2b\x22\x5d\x22\x2c\x66\x2c\x63\x2c\x65\x29\x7d\x29\x3b\x65\x6c\x73\x65\x20\x69\x66\x28\x63\x7c\x7c\x62\x3d\x3d\x6e\x75\x6c\x6c\x7c\x7c\x74\x79\x70\x65\x6f\x66\x20\x62\x21\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x65\x28\x61\x2c\x62\x29\x3b\x65\x6c\x73\x65\x20\x69\x66\x28\x64\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x62\x29\x7c\x7c\x64\x2e\x69\x73\x45\x6d\x70\x74\x79\x4f\x62\x6a\x65\x63\x74\x28\x62\x29\x29\x65\x28\x61\x2c\x22\x22\x29\x3b\x65\x6c\x73\x65\x20\x66\x6f\x72\x28\x76\x61\x72\x20\x66\x20\x69\x6e\x20\x62\x29\x62\x51\x28\x61\x2b\x22\x5b\x22\x2b\x66\x2b\x22\x5d\x22\x2c\x62\x5b\x66\x5d\x2c\x63\x2c\x65\x29\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x50\x28\x61\x2c\x63\x2c\x64\x2c\x65\x2c\x66\x2c\x67\x29\x7b\x66\x3d\x66\x7c\x7c\x63\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\x5b\x30\x5d\x2c\x67\x3d\x67\x7c\x7c\x7b\x7d\x2c\x67\x5b\x66\x5d\x3d\x21\x30\x3b\x76\x61\x72\x20\x68\x3d\x61\x5b\x66\x5d\x2c\x69\x3d\x30\x2c\x6a\x3d\x68\x3f\x68\x2e\x6c\x65\x6e\x67\x74\x68\x3a\x30\x2c\x6b\x3d\x61\x3d\x3d\x3d\x62\x4a\x2c\x6c\x3b\x66\x6f\x72\x28\x3b\x69\x3c\x6a\x26\x26\x28\x6b\x7c\x7c\x21\x6c\x29\x3b\x69\x2b\x2b\x29\x6c\x3d\x68\x5b\x69\x5d\x28\x63\x2c\x64\x2c\x65\x29\x2c\x74\x79\x70\x65\x6f\x66\x20\x6c\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x21\x6b\x7c\x7c\x67\x5b\x6c\x5d\x3f\x6c\x3d\x62\x3a\x28\x63\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x6c\x29\x2c\x6c\x3d\x62\x50\x28\x61\x2c\x63\x2c\x64\x2c\x65\x2c\x6c\x2c\x67\x29\x29\x29\x3b\x28\x6b\x7c\x7c\x21\x6c\x29\x26\x26\x21\x67\x5b\x22\x2a\x22\x5d\x26\x26\x28\x6c\x3d\x62\x50\x28\x61\x2c\x63\x2c\x64\x2c\x65\x2c\x22\x2a\x22\x2c\x67\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x6c\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x4f\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x2c\x63\x29\x7b\x74\x79\x70\x65\x6f\x66\x20\x62\x21\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x63\x3d\x62\x2c\x62\x3d\x22\x2a\x22\x29\x3b\x69\x66\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x29\x29\x7b\x76\x61\x72\x20\x65\x3d\x62\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2e\x73\x70\x6c\x69\x74\x28\x62\x44\x29\x2c\x66\x3d\x30\x2c\x67\x3d\x65\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x68\x2c\x69\x2c\x6a\x3b\x66\x6f\x72\x28\x3b\x66\x3c\x67\x3b\x66\x2b\x2b\x29\x68\x3d\x65\x5b\x66\x5d\x2c\x6a\x3d\x2f\x5e\x5c\x2b\x2f\x2e\x74\x65\x73\x74\x28\x68\x29\x2c\x6a\x26\x26\x28\x68\x3d\x68\x2e\x73\x75\x62\x73\x74\x72\x28\x31\x29\x7c\x7c\x22\x2a\x22\x29\x2c\x69\x3d\x61\x5b\x68\x5d\x3d\x61\x5b\x68\x5d\x7c\x7c\x5b\x5d\x2c\x69\x5b\x6a\x3f\x22\x75\x6e\x73\x68\x69\x66\x74\x22\x3a\x22\x70\x75\x73\x68\x22\x5d\x28\x63\x29\x7d\x7d\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x71\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x65\x3d\x62\x3d\x3d\x3d\x22\x77\x69\x64\x74\x68\x22\x3f\x62\x6b\x3a\x62\x6c\x2c\x66\x3d\x62\x3d\x3d\x3d\x22\x77\x69\x64\x74\x68\x22\x3f\x61\x2e\x6f\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68\x3a\x61\x2e\x6f\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x3b\x69\x66\x28\x63\x3d\x3d\x3d\x22\x62\x6f\x72\x64\x65\x72\x22\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x3b\x64\x2e\x65\x61\x63\x68\x28\x65\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x63\x7c\x7c\x28\x66\x2d\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x64\x2e\x63\x73\x73\x28\x61\x2c\x22\x70\x61\x64\x64\x69\x6e\x67\x22\x2b\x74\x68\x69\x73\x29\x29\x7c\x7c\x30\x29\x2c\x63\x3d\x3d\x3d\x22\x6d\x61\x72\x67\x69\x6e\x22\x3f\x66\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x64\x2e\x63\x73\x73\x28\x61\x2c\x22\x6d\x61\x72\x67\x69\x6e\x22\x2b\x74\x68\x69\x73\x29\x29\x7c\x7c\x30\x3a\x66\x2d\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x64\x2e\x63\x73\x73\x28\x61\x2c\x22\x62\x6f\x72\x64\x65\x72\x22\x2b\x74\x68\x69\x73\x2b\x22\x57\x69\x64\x74\x68\x22\x29\x29\x7c\x7c\x30\x7d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x66\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x63\x28\x61\x2c\x62\x29\x7b\x62\x2e\x73\x72\x63\x3f\x64\x2e\x61\x6a\x61\x78\x28\x7b\x75\x72\x6c\x3a\x62\x2e\x73\x72\x63\x2c\x61\x73\x79\x6e\x63\x3a\x21\x31\x2c\x64\x61\x74\x61\x54\x79\x70\x65\x3a\x22\x73\x63\x72\x69\x70\x74\x22\x7d\x29\x3a\x64\x2e\x67\x6c\x6f\x62\x61\x6c\x45\x76\x61\x6c\x28\x62\x2e\x74\x65\x78\x74\x7c\x7c\x62\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x7c\x7c\x62\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x7c\x7c\x22\x22\x29\x2c\x62\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x26\x26\x62\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x62\x29\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x62\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x22\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x22\x69\x6e\x20\x61\x3f\x61\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x2a\x22\x29\x3a\x22\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x22\x69\x6e\x20\x61\x3f\x61\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2a\x22\x29\x3a\x5b\x5d\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x61\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x62\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x7b\x76\x61\x72\x20\x63\x3d\x62\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3b\x62\x2e\x63\x6c\x65\x61\x72\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73\x28\x29\x2c\x62\x2e\x6d\x65\x72\x67\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73\x28\x61\x29\x3b\x69\x66\x28\x63\x3d\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x62\x2e\x6f\x75\x74\x65\x72\x48\x54\x4d\x4c\x3d\x61\x2e\x6f\x75\x74\x65\x72\x48\x54\x4d\x4c\x3b\x65\x6c\x73\x65\x20\x69\x66\x28\x63\x21\x3d\x3d\x22\x69\x6e\x70\x75\x74\x22\x7c\x7c\x61\x2e\x74\x79\x70\x65\x21\x3d\x3d\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x22\x26\x26\x61\x2e\x74\x79\x70\x65\x21\x3d\x3d\x22\x72\x61\x64\x69\x6f\x22\x29\x7b\x69\x66\x28\x63\x3d\x3d\x3d\x22\x6f\x70\x74\x69\x6f\x6e\x22\x29\x62\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x3d\x61\x2e\x64\x65\x66\x61\x75\x6c\x74\x53\x65\x6c\x65\x63\x74\x65\x64\x3b\x65\x6c\x73\x65\x20\x69\x66\x28\x63\x3d\x3d\x3d\x22\x69\x6e\x70\x75\x74\x22\x7c\x7c\x63\x3d\x3d\x3d\x22\x74\x65\x78\x74\x61\x72\x65\x61\x22\x29\x62\x2e\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x3d\x61\x2e\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x7d\x65\x6c\x73\x65\x20\x61\x2e\x63\x68\x65\x63\x6b\x65\x64\x26\x26\x28\x62\x2e\x64\x65\x66\x61\x75\x6c\x74\x43\x68\x65\x63\x6b\x65\x64\x3d\x62\x2e\x63\x68\x65\x63\x6b\x65\x64\x3d\x61\x2e\x63\x68\x65\x63\x6b\x65\x64\x29\x2c\x62\x2e\x76\x61\x6c\x75\x65\x21\x3d\x3d\x61\x2e\x76\x61\x6c\x75\x65\x26\x26\x28\x62\x2e\x76\x61\x6c\x75\x65\x3d\x61\x2e\x76\x61\x6c\x75\x65\x29\x3b\x62\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x29\x7d\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x5f\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x62\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x64\x2e\x68\x61\x73\x44\x61\x74\x61\x28\x61\x29\x29\x7b\x76\x61\x72\x20\x63\x3d\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x2c\x65\x3d\x64\x2e\x64\x61\x74\x61\x28\x61\x29\x2c\x66\x3d\x64\x2e\x64\x61\x74\x61\x28\x62\x2c\x65\x29\x3b\x69\x66\x28\x65\x3d\x65\x5b\x63\x5d\x29\x7b\x76\x61\x72\x20\x67\x3d\x65\x2e\x65\x76\x65\x6e\x74\x73\x3b\x66\x3d\x66\x5b\x63\x5d\x3d\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x65\x29\x3b\x69\x66\x28\x67\x29\x7b\x64\x65\x6c\x65\x74\x65\x20\x66\x2e\x68\x61\x6e\x64\x6c\x65\x2c\x66\x2e\x65\x76\x65\x6e\x74\x73\x3d\x7b\x7d\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x68\x20\x69\x6e\x20\x67\x29\x66\x6f\x72\x28\x76\x61\x72\x20\x69\x3d\x30\x2c\x6a\x3d\x67\x5b\x68\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x69\x3c\x6a\x3b\x69\x2b\x2b\x29\x64\x2e\x65\x76\x65\x6e\x74\x2e\x61\x64\x64\x28\x62\x2c\x68\x2b\x28\x67\x5b\x68\x5d\x5b\x69\x5d\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x3f\x22\x2e\x22\x3a\x22\x22\x29\x2b\x67\x5b\x68\x5d\x5b\x69\x5d\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x2c\x67\x5b\x68\x5d\x5b\x69\x5d\x2c\x67\x5b\x68\x5d\x5b\x69\x5d\x2e\x64\x61\x74\x61\x29\x7d\x7d\x7d\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x24\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x61\x2c\x22\x74\x61\x62\x6c\x65\x22\x29\x3f\x61\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x74\x62\x6f\x64\x79\x22\x29\x5b\x30\x5d\x7c\x7c\x61\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x61\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x74\x62\x6f\x64\x79\x22\x29\x29\x3a\x61\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x51\x28\x61\x2c\x62\x2c\x63\x29\x7b\x69\x66\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x67\x72\x65\x70\x28\x61\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x64\x29\x7b\x76\x61\x72\x20\x65\x3d\x21\x21\x62\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x64\x2c\x61\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x3d\x3d\x3d\x63\x7d\x29\x3b\x69\x66\x28\x62\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x29\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x67\x72\x65\x70\x28\x61\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x64\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x3d\x3d\x3d\x62\x3d\x3d\x3d\x63\x7d\x29\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x62\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x7b\x76\x61\x72\x20\x65\x3d\x64\x2e\x67\x72\x65\x70\x28\x61\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x7d\x29\x3b\x69\x66\x28\x4c\x2e\x74\x65\x73\x74\x28\x62\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x66\x69\x6c\x74\x65\x72\x28\x62\x2c\x65\x2c\x21\x63\x29\x3b\x62\x3d\x64\x2e\x66\x69\x6c\x74\x65\x72\x28\x62\x2c\x65\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x67\x72\x65\x70\x28\x61\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x65\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x69\x6e\x41\x72\x72\x61\x79\x28\x61\x2c\x62\x29\x3e\x3d\x30\x3d\x3d\x3d\x63\x7d\x29\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x50\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x61\x7c\x7c\x21\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x7c\x7c\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x31\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x48\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x28\x61\x26\x26\x61\x21\x3d\x3d\x22\x2a\x22\x3f\x61\x2b\x22\x2e\x22\x3a\x22\x22\x29\x2b\x62\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x74\x2c\x22\x60\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x75\x2c\x22\x26\x22\x29\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x47\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x2c\x63\x2c\x65\x2c\x66\x2c\x67\x2c\x68\x2c\x69\x2c\x6a\x2c\x6b\x2c\x6c\x2c\x6d\x2c\x6e\x2c\x6f\x2c\x70\x3d\x5b\x5d\x2c\x71\x3d\x5b\x5d\x2c\x73\x3d\x64\x2e\x5f\x64\x61\x74\x61\x28\x74\x68\x69\x73\x2c\x22\x65\x76\x65\x6e\x74\x73\x22\x29\x3b\x69\x66\x28\x61\x2e\x6c\x69\x76\x65\x46\x69\x72\x65\x64\x21\x3d\x3d\x74\x68\x69\x73\x26\x26\x73\x26\x26\x73\x2e\x6c\x69\x76\x65\x26\x26\x21\x61\x2e\x74\x61\x72\x67\x65\x74\x2e\x64\x69\x73\x61\x62\x6c\x65\x64\x26\x26\x28\x21\x61\x2e\x62\x75\x74\x74\x6f\x6e\x7c\x7c\x61\x2e\x74\x79\x70\x65\x21\x3d\x3d\x22\x63\x6c\x69\x63\x6b\x22\x29\x29\x7b\x61\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x26\x26\x28\x6e\x3d\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x22\x28\x5e\x7c\x5c\x5c\x2e\x29\x22\x2b\x61\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x2e\x73\x70\x6c\x69\x74\x28\x22\x2e\x22\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x5c\x5c\x2e\x28\x3f\x3a\x2e\x2a\x5c\x5c\x2e\x29\x3f\x22\x29\x2b\x22\x28\x5c\x5c\x2e\x7c\x24\x29\x22\x29\x29\x2c\x61\x2e\x6c\x69\x76\x65\x46\x69\x72\x65\x64\x3d\x74\x68\x69\x73\x3b\x76\x61\x72\x20\x74\x3d\x73\x2e\x6c\x69\x76\x65\x2e\x73\x6c\x69\x63\x65\x28\x30\x29\x3b\x66\x6f\x72\x28\x69\x3d\x30\x3b\x69\x3c\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x69\x2b\x2b\x29\x67\x3d\x74\x5b\x69\x5d\x2c\x67\x2e\x6f\x72\x69\x67\x54\x79\x70\x65\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x72\x2c\x22\x22\x29\x3d\x3d\x3d\x61\x2e\x74\x79\x70\x65\x3f\x71\x2e\x70\x75\x73\x68\x28\x67\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x29\x3a\x74\x2e\x73\x70\x6c\x69\x63\x65\x28\x69\x2d\x2d\x2c\x31\x29\x3b\x66\x3d\x64\x28\x61\x2e\x74\x61\x72\x67\x65\x74\x29\x2e\x63\x6c\x6f\x73\x65\x73\x74\x28\x71\x2c\x61\x2e\x63\x75\x72\x72\x65\x6e\x74\x54\x61\x72\x67\x65\x74\x29\x3b\x66\x6f\x72\x28\x6a\x3d\x30\x2c\x6b\x3d\x66\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x6a\x3c\x6b\x3b\x6a\x2b\x2b\x29\x7b\x6d\x3d\x66\x5b\x6a\x5d\x3b\x66\x6f\x72\x28\x69\x3d\x30\x3b\x69\x3c\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x69\x2b\x2b\x29\x7b\x67\x3d\x74\x5b\x69\x5d\x3b\x69\x66\x28\x6d\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x3d\x3d\x3d\x67\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x26\x26\x28\x21\x6e\x7c\x7c\x6e\x2e\x74\x65\x73\x74\x28\x67\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x29\x29\x26\x26\x21\x6d\x2e\x65\x6c\x65\x6d\x2e\x64\x69\x73\x61\x62\x6c\x65\x64\x29\x7b\x68\x3d\x6d\x2e\x65\x6c\x65\x6d\x2c\x65\x3d\x6e\x75\x6c\x6c\x3b\x69\x66\x28\x67\x2e\x70\x72\x65\x54\x79\x70\x65\x3d\x3d\x3d\x22\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x22\x7c\x7c\x67\x2e\x70\x72\x65\x54\x79\x70\x65\x3d\x3d\x3d\x22\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x22\x29\x61\x2e\x74\x79\x70\x65\x3d\x67\x2e\x70\x72\x65\x54\x79\x70\x65\x2c\x65\x3d\x64\x28\x61\x2e\x72\x65\x6c\x61\x74\x65\x64\x54\x61\x72\x67\x65\x74\x29\x2e\x63\x6c\x6f\x73\x65\x73\x74\x28\x67\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x29\x5b\x30\x5d\x3b\x28\x21\x65\x7c\x7c\x65\x21\x3d\x3d\x68\x29\x26\x26\x70\x2e\x70\x75\x73\x68\x28\x7b\x65\x6c\x65\x6d\x3a\x68\x2c\x68\x61\x6e\x64\x6c\x65\x4f\x62\x6a\x3a\x67\x2c\x6c\x65\x76\x65\x6c\x3a\x6d\x2e\x6c\x65\x76\x65\x6c\x7d\x29\x7d\x7d\x7d\x66\x6f\x72\x28\x6a\x3d\x30\x2c\x6b\x3d\x70\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x6a\x3c\x6b\x3b\x6a\x2b\x2b\x29\x7b\x66\x3d\x70\x5b\x6a\x5d\x3b\x69\x66\x28\x63\x26\x26\x66\x2e\x6c\x65\x76\x65\x6c\x3e\x63\x29\x62\x72\x65\x61\x6b\x3b\x61\x2e\x63\x75\x72\x72\x65\x6e\x74\x54\x61\x72\x67\x65\x74\x3d\x66\x2e\x65\x6c\x65\x6d\x2c\x61\x2e\x64\x61\x74\x61\x3d\x66\x2e\x68\x61\x6e\x64\x6c\x65\x4f\x62\x6a\x2e\x64\x61\x74\x61\x2c\x61\x2e\x68\x61\x6e\x64\x6c\x65\x4f\x62\x6a\x3d\x66\x2e\x68\x61\x6e\x64\x6c\x65\x4f\x62\x6a\x2c\x6f\x3d\x66\x2e\x68\x61\x6e\x64\x6c\x65\x4f\x62\x6a\x2e\x6f\x72\x69\x67\x48\x61\x6e\x64\x6c\x65\x72\x2e\x61\x70\x70\x6c\x79\x28\x66\x2e\x65\x6c\x65\x6d\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x69\x66\x28\x6f\x3d\x3d\x3d\x21\x31\x7c\x7c\x61\x2e\x69\x73\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x53\x74\x6f\x70\x70\x65\x64\x28\x29\x29\x7b\x63\x3d\x66\x2e\x6c\x65\x76\x65\x6c\x2c\x6f\x3d\x3d\x3d\x21\x31\x26\x26\x28\x62\x3d\x21\x31\x29\x3b\x69\x66\x28\x61\x2e\x69\x73\x49\x6d\x6d\x65\x64\x69\x61\x74\x65\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x53\x74\x6f\x70\x70\x65\x64\x28\x29\x29\x62\x72\x65\x61\x6b\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x62\x7d\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x45\x28\x61\x2c\x63\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x3d\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x65\x5b\x30\x5d\x29\x3b\x66\x2e\x74\x79\x70\x65\x3d\x61\x2c\x66\x2e\x6f\x72\x69\x67\x69\x6e\x61\x6c\x45\x76\x65\x6e\x74\x3d\x7b\x7d\x2c\x66\x2e\x6c\x69\x76\x65\x46\x69\x72\x65\x64\x3d\x62\x2c\x64\x2e\x65\x76\x65\x6e\x74\x2e\x68\x61\x6e\x64\x6c\x65\x2e\x63\x61\x6c\x6c\x28\x63\x2c\x66\x29\x2c\x66\x2e\x69\x73\x44\x65\x66\x61\x75\x6c\x74\x50\x72\x65\x76\x65\x6e\x74\x65\x64\x28\x29\x26\x26\x65\x5b\x30\x5d\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x79\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x30\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x78\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x28\x61\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x62\x20\x69\x6e\x20\x61\x29\x69\x66\x28\x62\x21\x3d\x3d\x22\x74\x6f\x4a\x53\x4f\x4e\x22\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x3b\x72\x65\x74\x75\x72\x6e\x21\x30\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x68\x28\x61\x2c\x63\x2c\x65\x29\x7b\x69\x66\x28\x65\x3d\x3d\x3d\x62\x26\x26\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x7b\x65\x3d\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x2d\x22\x2b\x63\x29\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x65\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x7b\x74\x72\x79\x7b\x65\x3d\x65\x3d\x3d\x3d\x22\x74\x72\x75\x65\x22\x3f\x21\x30\x3a\x65\x3d\x3d\x3d\x22\x66\x61\x6c\x73\x65\x22\x3f\x21\x31\x3a\x65\x3d\x3d\x3d\x22\x6e\x75\x6c\x6c\x22\x3f\x6e\x75\x6c\x6c\x3a\x64\x2e\x69\x73\x4e\x61\x4e\x28\x65\x29\x3f\x67\x2e\x74\x65\x73\x74\x28\x65\x29\x3f\x64\x2e\x70\x61\x72\x73\x65\x4a\x53\x4f\x4e\x28\x65\x29\x3a\x65\x3a\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x29\x7d\x63\x61\x74\x63\x68\x28\x66\x29\x7b\x7d\x64\x2e\x64\x61\x74\x61\x28\x61\x2c\x63\x2c\x65\x29\x7d\x65\x6c\x73\x65\x20\x65\x3d\x62\x7d\x72\x65\x74\x75\x72\x6e\x20\x65\x7d\x76\x61\x72\x20\x63\x3d\x61\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2c\x64\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x47\x28\x29\x7b\x69\x66\x28\x21\x64\x2e\x69\x73\x52\x65\x61\x64\x79\x29\x7b\x74\x72\x79\x7b\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x64\x6f\x53\x63\x72\x6f\x6c\x6c\x28\x22\x6c\x65\x66\x74\x22\x29\x7d\x63\x61\x74\x63\x68\x28\x61\x29\x7b\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x47\x2c\x31\x29\x3b\x72\x65\x74\x75\x72\x6e\x7d\x64\x2e\x72\x65\x61\x64\x79\x28\x29\x7d\x7d\x76\x61\x72\x20\x64\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x64\x2e\x66\x6e\x2e\x69\x6e\x69\x74\x28\x61\x2c\x62\x2c\x67\x29\x7d\x2c\x65\x3d\x61\x2e\x6a\x51\x75\x65\x72\x79\x2c\x66\x3d\x61\x2e\x24\x2c\x67\x2c\x68\x3d\x2f\x5e\x28\x3f\x3a\x5b\x5e\x3c\x5d\x2a\x28\x3c\x5b\x5c\x77\x5c\x57\x5d\x2b\x3e\x29\x5b\x5e\x3e\x5d\x2a\x24\x7c\x23\x28\x5b\x5c\x77\x5c\x2d\x5d\x2b\x29\x24\x29\x2f\x2c\x69\x3d\x2f\x5c\x53\x2f\x2c\x6a\x3d\x2f\x5e\x5c\x73\x2b\x2f\x2c\x6b\x3d\x2f\x5c\x73\x2b\x24\x2f\x2c\x6c\x3d\x2f\x5c\x64\x2f\x2c\x6d\x3d\x2f\x5e\x3c\x28\x5c\x77\x2b\x29\x5c\x73\x2a\x5c\x2f\x3f\x3e\x28\x3f\x3a\x3c\x5c\x2f\x5c\x31\x3e\x29\x3f\x24\x2f\x2c\x6e\x3d\x2f\x5e\x5b\x5c\x5d\x2c\x3a\x7b\x7d\x5c\x73\x5d\x2a\x24\x2f\x2c\x6f\x3d\x2f\x5c\x5c\x28\x3f\x3a\x5b\x22\x5c\x5c\x5c\x2f\x62\x66\x6e\x72\x74\x5d\x7c\x75\x5b\x30\x2d\x39\x61\x2d\x66\x41\x2d\x46\x5d\x7b\x34\x7d\x29\x2f\x67\x2c\x70\x3d\x2f\x22\x5b\x5e\x22\x5c\x5c\x5c\x6e\x5c\x72\x5d\x2a\x22\x7c\x74\x72\x75\x65\x7c\x66\x61\x6c\x73\x65\x7c\x6e\x75\x6c\x6c\x7c\x2d\x3f\x5c\x64\x2b\x28\x3f\x3a\x5c\x2e\x5c\x64\x2a\x29\x3f\x28\x3f\x3a\x5b\x65\x45\x5d\x5b\x2b\x5c\x2d\x5d\x3f\x5c\x64\x2b\x29\x3f\x2f\x67\x2c\x71\x3d\x2f\x28\x3f\x3a\x5e\x7c\x3a\x7c\x2c\x29\x28\x3f\x3a\x5c\x73\x2a\x5c\x5b\x29\x2b\x2f\x67\x2c\x72\x3d\x2f\x28\x77\x65\x62\x6b\x69\x74\x29\x5b\x20\x5c\x2f\x5d\x28\x5b\x5c\x77\x2e\x5d\x2b\x29\x2f\x2c\x73\x3d\x2f\x28\x6f\x70\x65\x72\x61\x29\x28\x3f\x3a\x2e\x2a\x76\x65\x72\x73\x69\x6f\x6e\x29\x3f\x5b\x20\x5c\x2f\x5d\x28\x5b\x5c\x77\x2e\x5d\x2b\x29\x2f\x2c\x74\x3d\x2f\x28\x6d\x73\x69\x65\x29\x20\x28\x5b\x5c\x77\x2e\x5d\x2b\x29\x2f\x2c\x75\x3d\x2f\x28\x6d\x6f\x7a\x69\x6c\x6c\x61\x29\x28\x3f\x3a\x2e\x2a\x3f\x20\x72\x76\x3a\x28\x5b\x5c\x77\x2e\x5d\x2b\x29\x29\x3f\x2f\x2c\x76\x3d\x6e\x61\x76\x69\x67\x61\x74\x6f\x72\x2e\x75\x73\x65\x72\x41\x67\x65\x6e\x74\x2c\x77\x2c\x78\x2c\x79\x2c\x7a\x3d\x4f\x62\x6a\x65\x63\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x2c\x41\x3d\x4f\x62\x6a\x65\x63\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x2c\x42\x3d\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x70\x75\x73\x68\x2c\x43\x3d\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x6c\x69\x63\x65\x2c\x44\x3d\x53\x74\x72\x69\x6e\x67\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x74\x72\x69\x6d\x2c\x45\x3d\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x2c\x46\x3d\x7b\x7d\x3b\x64\x2e\x66\x6e\x3d\x64\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x3d\x7b\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x3a\x64\x2c\x69\x6e\x69\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x65\x2c\x66\x29\x7b\x76\x61\x72\x20\x67\x2c\x69\x2c\x6a\x2c\x6b\x3b\x69\x66\x28\x21\x61\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x69\x66\x28\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x29\x7b\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x78\x74\x3d\x74\x68\x69\x73\x5b\x30\x5d\x3d\x61\x2c\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x31\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x69\x66\x28\x61\x3d\x3d\x3d\x22\x62\x6f\x64\x79\x22\x26\x26\x21\x65\x26\x26\x63\x2e\x62\x6f\x64\x79\x29\x7b\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x78\x74\x3d\x63\x2c\x74\x68\x69\x73\x5b\x30\x5d\x3d\x63\x2e\x62\x6f\x64\x79\x2c\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x3d\x22\x62\x6f\x64\x79\x22\x2c\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x31\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x7b\x67\x3d\x68\x2e\x65\x78\x65\x63\x28\x61\x29\x3b\x69\x66\x28\x21\x67\x7c\x7c\x21\x67\x5b\x31\x5d\x26\x26\x65\x29\x72\x65\x74\x75\x72\x6e\x21\x65\x7c\x7c\x65\x2e\x6a\x71\x75\x65\x72\x79\x3f\x28\x65\x7c\x7c\x66\x29\x2e\x66\x69\x6e\x64\x28\x61\x29\x3a\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x65\x29\x2e\x66\x69\x6e\x64\x28\x61\x29\x3b\x69\x66\x28\x67\x5b\x31\x5d\x29\x7b\x65\x3d\x65\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x64\x3f\x65\x5b\x30\x5d\x3a\x65\x2c\x6b\x3d\x65\x3f\x65\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x65\x3a\x63\x2c\x6a\x3d\x6d\x2e\x65\x78\x65\x63\x28\x61\x29\x2c\x6a\x3f\x64\x2e\x69\x73\x50\x6c\x61\x69\x6e\x4f\x62\x6a\x65\x63\x74\x28\x65\x29\x3f\x28\x61\x3d\x5b\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x6a\x5b\x31\x5d\x29\x5d\x2c\x64\x2e\x66\x6e\x2e\x61\x74\x74\x72\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x65\x2c\x21\x30\x29\x29\x3a\x61\x3d\x5b\x6b\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x6a\x5b\x31\x5d\x29\x5d\x3a\x28\x6a\x3d\x64\x2e\x62\x75\x69\x6c\x64\x46\x72\x61\x67\x6d\x65\x6e\x74\x28\x5b\x67\x5b\x31\x5d\x5d\x2c\x5b\x6b\x5d\x29\x2c\x61\x3d\x28\x6a\x2e\x63\x61\x63\x68\x65\x61\x62\x6c\x65\x3f\x64\x2e\x63\x6c\x6f\x6e\x65\x28\x6a\x2e\x66\x72\x61\x67\x6d\x65\x6e\x74\x29\x3a\x6a\x2e\x66\x72\x61\x67\x6d\x65\x6e\x74\x29\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x6d\x65\x72\x67\x65\x28\x74\x68\x69\x73\x2c\x61\x29\x7d\x69\x3d\x63\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x28\x67\x5b\x32\x5d\x29\x3b\x69\x66\x28\x69\x26\x26\x69\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x7b\x69\x66\x28\x69\x2e\x69\x64\x21\x3d\x3d\x67\x5b\x32\x5d\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x66\x69\x6e\x64\x28\x61\x29\x3b\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x31\x2c\x74\x68\x69\x73\x5b\x30\x5d\x3d\x69\x7d\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x78\x74\x3d\x63\x2c\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x3d\x61\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x69\x66\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x72\x65\x61\x64\x79\x28\x61\x29\x3b\x61\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x21\x3d\x3d\x62\x26\x26\x28\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x3d\x61\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x2c\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x78\x74\x3d\x61\x2e\x63\x6f\x6e\x74\x65\x78\x74\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x6d\x61\x6b\x65\x41\x72\x72\x61\x79\x28\x61\x2c\x74\x68\x69\x73\x29\x7d\x2c\x73\x65\x6c\x65\x63\x74\x6f\x72\x3a\x22\x22\x2c\x6a\x71\x75\x65\x72\x79\x3a\x22\x31\x2e\x35\x2e\x32\x22\x2c\x6c\x65\x6e\x67\x74\x68\x3a\x30\x2c\x73\x69\x7a\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x7d\x2c\x74\x6f\x41\x72\x72\x61\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x43\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x30\x29\x7d\x2c\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x3d\x3d\x6e\x75\x6c\x6c\x3f\x74\x68\x69\x73\x2e\x74\x6f\x41\x72\x72\x61\x79\x28\x29\x3a\x61\x3c\x30\x3f\x74\x68\x69\x73\x5b\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2b\x61\x5d\x3a\x74\x68\x69\x73\x5b\x61\x5d\x7d\x2c\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x65\x3d\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x29\x3b\x64\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x61\x29\x3f\x42\x2e\x61\x70\x70\x6c\x79\x28\x65\x2c\x61\x29\x3a\x64\x2e\x6d\x65\x72\x67\x65\x28\x65\x2c\x61\x29\x2c\x65\x2e\x70\x72\x65\x76\x4f\x62\x6a\x65\x63\x74\x3d\x74\x68\x69\x73\x2c\x65\x2e\x63\x6f\x6e\x74\x65\x78\x74\x3d\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x78\x74\x2c\x62\x3d\x3d\x3d\x22\x66\x69\x6e\x64\x22\x3f\x65\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x3d\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x2b\x28\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x3f\x22\x20\x22\x3a\x22\x22\x29\x2b\x63\x3a\x62\x26\x26\x28\x65\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x3d\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x2b\x22\x2e\x22\x2b\x62\x2b\x22\x28\x22\x2b\x63\x2b\x22\x29\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x7d\x2c\x65\x61\x63\x68\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x65\x61\x63\x68\x28\x74\x68\x69\x73\x2c\x61\x2c\x62\x29\x7d\x2c\x72\x65\x61\x64\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x64\x2e\x62\x69\x6e\x64\x52\x65\x61\x64\x79\x28\x29\x2c\x78\x2e\x64\x6f\x6e\x65\x28\x61\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x65\x71\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x3d\x3d\x3d\x2d\x31\x3f\x74\x68\x69\x73\x2e\x73\x6c\x69\x63\x65\x28\x61\x29\x3a\x74\x68\x69\x73\x2e\x73\x6c\x69\x63\x65\x28\x61\x2c\x2b\x61\x2b\x31\x29\x7d\x2c\x66\x69\x72\x73\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x71\x28\x30\x29\x7d\x2c\x6c\x61\x73\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x71\x28\x2d\x31\x29\x7d\x2c\x73\x6c\x69\x63\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x43\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x2c\x22\x73\x6c\x69\x63\x65\x22\x2c\x43\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x2c\x22\x29\x29\x7d\x2c\x6d\x61\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x64\x2e\x6d\x61\x70\x28\x74\x68\x69\x73\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x63\x61\x6c\x6c\x28\x62\x2c\x63\x2c\x62\x29\x7d\x29\x29\x7d\x2c\x65\x6e\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x4f\x62\x6a\x65\x63\x74\x7c\x7c\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x6e\x75\x6c\x6c\x29\x7d\x2c\x70\x75\x73\x68\x3a\x42\x2c\x73\x6f\x72\x74\x3a\x5b\x5d\x2e\x73\x6f\x72\x74\x2c\x73\x70\x6c\x69\x63\x65\x3a\x5b\x5d\x2e\x73\x70\x6c\x69\x63\x65\x7d\x2c\x64\x2e\x66\x6e\x2e\x69\x6e\x69\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x3d\x64\x2e\x66\x6e\x2c\x64\x2e\x65\x78\x74\x65\x6e\x64\x3d\x64\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\x64\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x2c\x63\x2c\x65\x2c\x66\x2c\x67\x2c\x68\x2c\x69\x3d\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x7c\x7c\x7b\x7d\x2c\x6a\x3d\x31\x2c\x6b\x3d\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x6c\x3d\x21\x31\x3b\x74\x79\x70\x65\x6f\x66\x20\x69\x3d\x3d\x3d\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x26\x26\x28\x6c\x3d\x69\x2c\x69\x3d\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x7c\x7c\x7b\x7d\x2c\x6a\x3d\x32\x29\x2c\x74\x79\x70\x65\x6f\x66\x20\x69\x21\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x26\x26\x21\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x29\x26\x26\x28\x69\x3d\x7b\x7d\x29\x2c\x6b\x3d\x3d\x3d\x6a\x26\x26\x28\x69\x3d\x74\x68\x69\x73\x2c\x2d\x2d\x6a\x29\x3b\x66\x6f\x72\x28\x3b\x6a\x3c\x6b\x3b\x6a\x2b\x2b\x29\x69\x66\x28\x28\x61\x3d\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x6a\x5d\x29\x21\x3d\x6e\x75\x6c\x6c\x29\x66\x6f\x72\x28\x63\x20\x69\x6e\x20\x61\x29\x7b\x65\x3d\x69\x5b\x63\x5d\x2c\x66\x3d\x61\x5b\x63\x5d\x3b\x69\x66\x28\x69\x3d\x3d\x3d\x66\x29\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x6c\x26\x26\x66\x26\x26\x28\x64\x2e\x69\x73\x50\x6c\x61\x69\x6e\x4f\x62\x6a\x65\x63\x74\x28\x66\x29\x7c\x7c\x28\x67\x3d\x64\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x66\x29\x29\x29\x3f\x28\x67\x3f\x28\x67\x3d\x21\x31\x2c\x68\x3d\x65\x26\x26\x64\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x29\x3f\x65\x3a\x5b\x5d\x29\x3a\x68\x3d\x65\x26\x26\x64\x2e\x69\x73\x50\x6c\x61\x69\x6e\x4f\x62\x6a\x65\x63\x74\x28\x65\x29\x3f\x65\x3a\x7b\x7d\x2c\x69\x5b\x63\x5d\x3d\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x6c\x2c\x68\x2c\x66\x29\x29\x3a\x66\x21\x3d\x3d\x62\x26\x26\x28\x69\x5b\x63\x5d\x3d\x66\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x69\x7d\x2c\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x6e\x6f\x43\x6f\x6e\x66\x6c\x69\x63\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x61\x2e\x24\x3d\x66\x2c\x62\x26\x26\x28\x61\x2e\x6a\x51\x75\x65\x72\x79\x3d\x65\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x7d\x2c\x69\x73\x52\x65\x61\x64\x79\x3a\x21\x31\x2c\x72\x65\x61\x64\x79\x57\x61\x69\x74\x3a\x31\x2c\x72\x65\x61\x64\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x61\x3d\x3d\x3d\x21\x30\x26\x26\x64\x2e\x72\x65\x61\x64\x79\x57\x61\x69\x74\x2d\x2d\x3b\x69\x66\x28\x21\x64\x2e\x72\x65\x61\x64\x79\x57\x61\x69\x74\x7c\x7c\x61\x21\x3d\x3d\x21\x30\x26\x26\x21\x64\x2e\x69\x73\x52\x65\x61\x64\x79\x29\x7b\x69\x66\x28\x21\x63\x2e\x62\x6f\x64\x79\x29\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x64\x2e\x72\x65\x61\x64\x79\x2c\x31\x29\x3b\x64\x2e\x69\x73\x52\x65\x61\x64\x79\x3d\x21\x30\x3b\x69\x66\x28\x61\x21\x3d\x3d\x21\x30\x26\x26\x2d\x2d\x64\x2e\x72\x65\x61\x64\x79\x57\x61\x69\x74\x3e\x30\x29\x72\x65\x74\x75\x72\x6e\x3b\x78\x2e\x72\x65\x73\x6f\x6c\x76\x65\x57\x69\x74\x68\x28\x63\x2c\x5b\x64\x5d\x29\x2c\x64\x2e\x66\x6e\x2e\x74\x72\x69\x67\x67\x65\x72\x26\x26\x64\x28\x63\x29\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x22\x72\x65\x61\x64\x79\x22\x29\x2e\x75\x6e\x62\x69\x6e\x64\x28\x22\x72\x65\x61\x64\x79\x22\x29\x7d\x7d\x2c\x62\x69\x6e\x64\x52\x65\x61\x64\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x21\x78\x29\x7b\x78\x3d\x64\x2e\x5f\x44\x65\x66\x65\x72\x72\x65\x64\x28\x29\x3b\x69\x66\x28\x63\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x3d\x3d\x3d\x22\x63\x6f\x6d\x70\x6c\x65\x74\x65\x22\x29\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x64\x2e\x72\x65\x61\x64\x79\x2c\x31\x29\x3b\x69\x66\x28\x63\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x29\x63\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64\x22\x2c\x79\x2c\x21\x31\x29\x2c\x61\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6c\x6f\x61\x64\x22\x2c\x64\x2e\x72\x65\x61\x64\x79\x2c\x21\x31\x29\x3b\x65\x6c\x73\x65\x20\x69\x66\x28\x63\x2e\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x29\x7b\x63\x2e\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x28\x22\x6f\x6e\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6e\x67\x65\x22\x2c\x79\x29\x2c\x61\x2e\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x28\x22\x6f\x6e\x6c\x6f\x61\x64\x22\x2c\x64\x2e\x72\x65\x61\x64\x79\x29\x3b\x76\x61\x72\x20\x62\x3d\x21\x31\x3b\x74\x72\x79\x7b\x62\x3d\x61\x2e\x66\x72\x61\x6d\x65\x45\x6c\x65\x6d\x65\x6e\x74\x3d\x3d\x6e\x75\x6c\x6c\x7d\x63\x61\x74\x63\x68\x28\x65\x29\x7b\x7d\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x64\x6f\x53\x63\x72\x6f\x6c\x6c\x26\x26\x62\x26\x26\x47\x28\x29\x7d\x7d\x7d\x2c\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x74\x79\x70\x65\x28\x61\x29\x3d\x3d\x3d\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x7d\x2c\x69\x73\x41\x72\x72\x61\x79\x3a\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x7c\x7c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x74\x79\x70\x65\x28\x61\x29\x3d\x3d\x3d\x22\x61\x72\x72\x61\x79\x22\x7d\x2c\x69\x73\x57\x69\x6e\x64\x6f\x77\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x26\x26\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x26\x26\x22\x73\x65\x74\x49\x6e\x74\x65\x72\x76\x61\x6c\x22\x69\x6e\x20\x61\x7d\x2c\x69\x73\x4e\x61\x4e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x3d\x3d\x6e\x75\x6c\x6c\x7c\x7c\x21\x6c\x2e\x74\x65\x73\x74\x28\x61\x29\x7c\x7c\x69\x73\x4e\x61\x4e\x28\x61\x29\x7d\x2c\x74\x79\x70\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x3d\x3d\x6e\x75\x6c\x6c\x3f\x53\x74\x72\x69\x6e\x67\x28\x61\x29\x3a\x46\x5b\x7a\x2e\x63\x61\x6c\x6c\x28\x61\x29\x5d\x7c\x7c\x22\x6f\x62\x6a\x65\x63\x74\x22\x7d\x2c\x69\x73\x50\x6c\x61\x69\x6e\x4f\x62\x6a\x65\x63\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x21\x61\x7c\x7c\x64\x2e\x74\x79\x70\x65\x28\x61\x29\x21\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x7c\x7c\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x7c\x7c\x64\x2e\x69\x73\x57\x69\x6e\x64\x6f\x77\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x3b\x69\x66\x28\x61\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x26\x26\x21\x41\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x22\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x22\x29\x26\x26\x21\x41\x2e\x63\x61\x6c\x6c\x28\x61\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2c\x22\x69\x73\x50\x72\x6f\x74\x6f\x74\x79\x70\x65\x4f\x66\x22\x29\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x3b\x76\x61\x72\x20\x63\x3b\x66\x6f\x72\x28\x63\x20\x69\x6e\x20\x61\x29\x7b\x7d\x72\x65\x74\x75\x72\x6e\x20\x63\x3d\x3d\x3d\x62\x7c\x7c\x41\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x63\x29\x7d\x2c\x69\x73\x45\x6d\x70\x74\x79\x4f\x62\x6a\x65\x63\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x62\x20\x69\x6e\x20\x61\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x3b\x72\x65\x74\x75\x72\x6e\x21\x30\x7d\x2c\x65\x72\x72\x6f\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x74\x68\x72\x6f\x77\x20\x61\x7d\x2c\x70\x61\x72\x73\x65\x4a\x53\x4f\x4e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x62\x21\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x7c\x7c\x21\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x62\x3d\x64\x2e\x74\x72\x69\x6d\x28\x62\x29\x3b\x69\x66\x28\x6e\x2e\x74\x65\x73\x74\x28\x62\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6f\x2c\x22\x40\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x70\x2c\x22\x5d\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x71\x2c\x22\x22\x29\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x4a\x53\x4f\x4e\x26\x26\x61\x2e\x4a\x53\x4f\x4e\x2e\x70\x61\x72\x73\x65\x3f\x61\x2e\x4a\x53\x4f\x4e\x2e\x70\x61\x72\x73\x65\x28\x62\x29\x3a\x28\x6e\x65\x77\x20\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x22\x72\x65\x74\x75\x72\x6e\x20\x22\x2b\x62\x29\x29\x28\x29\x3b\x64\x2e\x65\x72\x72\x6f\x72\x28\x22\x49\x6e\x76\x61\x6c\x69\x64\x20\x4a\x53\x4f\x4e\x3a\x20\x22\x2b\x62\x29\x7d\x2c\x70\x61\x72\x73\x65\x58\x4d\x4c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x2c\x63\x2c\x65\x29\x7b\x61\x2e\x44\x4f\x4d\x50\x61\x72\x73\x65\x72\x3f\x28\x65\x3d\x6e\x65\x77\x20\x44\x4f\x4d\x50\x61\x72\x73\x65\x72\x2c\x63\x3d\x65\x2e\x70\x61\x72\x73\x65\x46\x72\x6f\x6d\x53\x74\x72\x69\x6e\x67\x28\x62\x2c\x22\x74\x65\x78\x74\x2f\x78\x6d\x6c\x22\x29\x29\x3a\x28\x63\x3d\x6e\x65\x77\x20\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x4d\x69\x63\x72\x6f\x73\x6f\x66\x74\x2e\x58\x4d\x4c\x44\x4f\x4d\x22\x29\x2c\x63\x2e\x61\x73\x79\x6e\x63\x3d\x22\x66\x61\x6c\x73\x65\x22\x2c\x63\x2e\x6c\x6f\x61\x64\x58\x4d\x4c\x28\x62\x29\x29\x2c\x65\x3d\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x28\x21\x65\x7c\x7c\x21\x65\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x7c\x7c\x65\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x3d\x3d\x3d\x22\x70\x61\x72\x73\x65\x72\x65\x72\x72\x6f\x72\x22\x29\x26\x26\x64\x2e\x65\x72\x72\x6f\x72\x28\x22\x49\x6e\x76\x61\x6c\x69\x64\x20\x58\x4d\x4c\x3a\x20\x22\x2b\x62\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x2c\x6e\x6f\x6f\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x7d\x2c\x67\x6c\x6f\x62\x61\x6c\x45\x76\x61\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x61\x26\x26\x69\x2e\x74\x65\x73\x74\x28\x61\x29\x29\x7b\x76\x61\x72\x20\x62\x3d\x63\x2e\x68\x65\x61\x64\x7c\x7c\x63\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x68\x65\x61\x64\x22\x29\x5b\x30\x5d\x7c\x7c\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x65\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x73\x63\x72\x69\x70\x74\x22\x29\x3b\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x73\x63\x72\x69\x70\x74\x45\x76\x61\x6c\x28\x29\x3f\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x63\x2e\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x4e\x6f\x64\x65\x28\x61\x29\x29\x3a\x65\x2e\x74\x65\x78\x74\x3d\x61\x2c\x62\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x65\x2c\x62\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x2c\x62\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x65\x29\x7d\x7d\x2c\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x26\x26\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x62\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x7d\x2c\x65\x61\x63\x68\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x2c\x67\x3d\x30\x2c\x68\x3d\x61\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x69\x3d\x68\x3d\x3d\x3d\x62\x7c\x7c\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x3b\x69\x66\x28\x65\x29\x7b\x69\x66\x28\x69\x29\x7b\x66\x6f\x72\x28\x66\x20\x69\x6e\x20\x61\x29\x69\x66\x28\x63\x2e\x61\x70\x70\x6c\x79\x28\x61\x5b\x66\x5d\x2c\x65\x29\x3d\x3d\x3d\x21\x31\x29\x62\x72\x65\x61\x6b\x7d\x65\x6c\x73\x65\x20\x66\x6f\x72\x28\x3b\x67\x3c\x68\x3b\x29\x69\x66\x28\x63\x2e\x61\x70\x70\x6c\x79\x28\x61\x5b\x67\x2b\x2b\x5d\x2c\x65\x29\x3d\x3d\x3d\x21\x31\x29\x62\x72\x65\x61\x6b\x7d\x65\x6c\x73\x65\x20\x69\x66\x28\x69\x29\x7b\x66\x6f\x72\x28\x66\x20\x69\x6e\x20\x61\x29\x69\x66\x28\x63\x2e\x63\x61\x6c\x6c\x28\x61\x5b\x66\x5d\x2c\x66\x2c\x61\x5b\x66\x5d\x29\x3d\x3d\x3d\x21\x31\x29\x62\x72\x65\x61\x6b\x7d\x65\x6c\x73\x65\x20\x66\x6f\x72\x28\x76\x61\x72\x20\x6a\x3d\x61\x5b\x30\x5d\x3b\x67\x3c\x68\x26\x26\x63\x2e\x63\x61\x6c\x6c\x28\x6a\x2c\x67\x2c\x6a\x29\x21\x3d\x3d\x21\x31\x3b\x6a\x3d\x61\x5b\x2b\x2b\x67\x5d\x29\x7b\x7d\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x2c\x74\x72\x69\x6d\x3a\x44\x3f\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x3d\x3d\x6e\x75\x6c\x6c\x3f\x22\x22\x3a\x44\x2e\x63\x61\x6c\x6c\x28\x61\x29\x7d\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x3d\x3d\x6e\x75\x6c\x6c\x3f\x22\x22\x3a\x28\x61\x2b\x22\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6a\x2c\x22\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6b\x2c\x22\x22\x29\x7d\x2c\x6d\x61\x6b\x65\x41\x72\x72\x61\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x62\x7c\x7c\x5b\x5d\x3b\x69\x66\x28\x61\x21\x3d\x6e\x75\x6c\x6c\x29\x7b\x76\x61\x72\x20\x65\x3d\x64\x2e\x74\x79\x70\x65\x28\x61\x29\x3b\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x6e\x75\x6c\x6c\x7c\x7c\x65\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x7c\x7c\x65\x3d\x3d\x3d\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x7c\x7c\x65\x3d\x3d\x3d\x22\x72\x65\x67\x65\x78\x70\x22\x7c\x7c\x64\x2e\x69\x73\x57\x69\x6e\x64\x6f\x77\x28\x61\x29\x3f\x42\x2e\x63\x61\x6c\x6c\x28\x63\x2c\x61\x29\x3a\x64\x2e\x6d\x65\x72\x67\x65\x28\x63\x2c\x61\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x2c\x69\x6e\x41\x72\x72\x61\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x62\x2e\x69\x6e\x64\x65\x78\x4f\x66\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x61\x29\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x63\x3d\x30\x2c\x64\x3d\x62\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x63\x3c\x64\x3b\x63\x2b\x2b\x29\x69\x66\x28\x62\x5b\x63\x5d\x3d\x3d\x3d\x61\x29\x72\x65\x74\x75\x72\x6e\x20\x63\x3b\x72\x65\x74\x75\x72\x6e\x2d\x31\x7d\x2c\x6d\x65\x72\x67\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x61\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x65\x3d\x30\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x63\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x66\x6f\x72\x28\x76\x61\x72\x20\x66\x3d\x63\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x65\x3c\x66\x3b\x65\x2b\x2b\x29\x61\x5b\x64\x2b\x2b\x5d\x3d\x63\x5b\x65\x5d\x3b\x65\x6c\x73\x65\x20\x77\x68\x69\x6c\x65\x28\x63\x5b\x65\x5d\x21\x3d\x3d\x62\x29\x61\x5b\x64\x2b\x2b\x5d\x3d\x63\x5b\x65\x2b\x2b\x5d\x3b\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x64\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x2c\x67\x72\x65\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x5b\x5d\x2c\x65\x3b\x63\x3d\x21\x21\x63\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x66\x3d\x30\x2c\x67\x3d\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x66\x3c\x67\x3b\x66\x2b\x2b\x29\x65\x3d\x21\x21\x62\x28\x61\x5b\x66\x5d\x2c\x66\x29\x2c\x63\x21\x3d\x3d\x65\x26\x26\x64\x2e\x70\x75\x73\x68\x28\x61\x5b\x66\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x7d\x2c\x6d\x61\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x5b\x5d\x2c\x65\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x66\x3d\x30\x2c\x67\x3d\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x66\x3c\x67\x3b\x66\x2b\x2b\x29\x65\x3d\x62\x28\x61\x5b\x66\x5d\x2c\x66\x2c\x63\x29\x2c\x65\x21\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x64\x5b\x64\x2e\x6c\x65\x6e\x67\x74\x68\x5d\x3d\x65\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x63\x6f\x6e\x63\x61\x74\x2e\x61\x70\x70\x6c\x79\x28\x5b\x5d\x2c\x64\x29\x7d\x2c\x67\x75\x69\x64\x3a\x31\x2c\x70\x72\x6f\x78\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x29\x7b\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x32\x26\x26\x28\x74\x79\x70\x65\x6f\x66\x20\x63\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x3f\x28\x65\x3d\x61\x2c\x61\x3d\x65\x5b\x63\x5d\x2c\x63\x3d\x62\x29\x3a\x63\x26\x26\x21\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x29\x26\x26\x28\x65\x3d\x63\x2c\x63\x3d\x62\x29\x29\x2c\x21\x63\x26\x26\x61\x26\x26\x28\x63\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x61\x70\x70\x6c\x79\x28\x65\x7c\x7c\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x7d\x29\x2c\x61\x26\x26\x28\x63\x2e\x67\x75\x69\x64\x3d\x61\x2e\x67\x75\x69\x64\x3d\x61\x2e\x67\x75\x69\x64\x7c\x7c\x63\x2e\x67\x75\x69\x64\x7c\x7c\x64\x2e\x67\x75\x69\x64\x2b\x2b\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x2c\x61\x63\x63\x65\x73\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x2c\x66\x2c\x67\x2c\x68\x29\x7b\x76\x61\x72\x20\x69\x3d\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x63\x3d\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x6a\x20\x69\x6e\x20\x63\x29\x64\x2e\x61\x63\x63\x65\x73\x73\x28\x61\x2c\x6a\x2c\x63\x5b\x6a\x5d\x2c\x66\x2c\x67\x2c\x65\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x69\x66\x28\x65\x21\x3d\x3d\x62\x29\x7b\x66\x3d\x21\x68\x26\x26\x66\x26\x26\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x29\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x6b\x3d\x30\x3b\x6b\x3c\x69\x3b\x6b\x2b\x2b\x29\x67\x28\x61\x5b\x6b\x5d\x2c\x63\x2c\x66\x3f\x65\x2e\x63\x61\x6c\x6c\x28\x61\x5b\x6b\x5d\x2c\x6b\x2c\x67\x28\x61\x5b\x6b\x5d\x2c\x63\x29\x29\x3a\x65\x2c\x68\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x72\x65\x74\x75\x72\x6e\x20\x69\x3f\x67\x28\x61\x5b\x30\x5d\x2c\x63\x29\x3a\x62\x7d\x2c\x6e\x6f\x77\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x28\x6e\x65\x77\x20\x44\x61\x74\x65\x29\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\x7d\x2c\x75\x61\x4d\x61\x74\x63\x68\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x61\x3d\x61\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3b\x76\x61\x72\x20\x62\x3d\x72\x2e\x65\x78\x65\x63\x28\x61\x29\x7c\x7c\x73\x2e\x65\x78\x65\x63\x28\x61\x29\x7c\x7c\x74\x2e\x65\x78\x65\x63\x28\x61\x29\x7c\x7c\x61\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x63\x6f\x6d\x70\x61\x74\x69\x62\x6c\x65\x22\x29\x3c\x30\x26\x26\x75\x2e\x65\x78\x65\x63\x28\x61\x29\x7c\x7c\x5b\x5d\x3b\x72\x65\x74\x75\x72\x6e\x7b\x62\x72\x6f\x77\x73\x65\x72\x3a\x62\x5b\x31\x5d\x7c\x7c\x22\x22\x2c\x76\x65\x72\x73\x69\x6f\x6e\x3a\x62\x5b\x32\x5d\x7c\x7c\x22\x30\x22\x7d\x7d\x2c\x73\x75\x62\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x28\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x2e\x66\x6e\x2e\x69\x6e\x69\x74\x28\x62\x2c\x63\x29\x7d\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x21\x30\x2c\x61\x2c\x74\x68\x69\x73\x29\x2c\x61\x2e\x73\x75\x70\x65\x72\x63\x6c\x61\x73\x73\x3d\x74\x68\x69\x73\x2c\x61\x2e\x66\x6e\x3d\x61\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x3d\x74\x68\x69\x73\x28\x29\x2c\x61\x2e\x66\x6e\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x3d\x61\x2c\x61\x2e\x73\x75\x62\x63\x6c\x61\x73\x73\x3d\x74\x68\x69\x73\x2e\x73\x75\x62\x63\x6c\x61\x73\x73\x2c\x61\x2e\x66\x6e\x2e\x69\x6e\x69\x74\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x28\x62\x2c\x63\x29\x7b\x63\x26\x26\x63\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x64\x26\x26\x21\x28\x63\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x29\x26\x26\x28\x63\x3d\x61\x28\x63\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x66\x6e\x2e\x69\x6e\x69\x74\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x62\x2c\x63\x2c\x65\x29\x7d\x2c\x61\x2e\x66\x6e\x2e\x69\x6e\x69\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x3d\x61\x2e\x66\x6e\x3b\x76\x61\x72\x20\x65\x3d\x61\x28\x63\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x2c\x62\x72\x6f\x77\x73\x65\x72\x3a\x7b\x7d\x7d\x29\x2c\x64\x2e\x65\x61\x63\x68\x28\x22\x42\x6f\x6f\x6c\x65\x61\x6e\x20\x4e\x75\x6d\x62\x65\x72\x20\x53\x74\x72\x69\x6e\x67\x20\x46\x75\x6e\x63\x74\x69\x6f\x6e\x20\x41\x72\x72\x61\x79\x20\x44\x61\x74\x65\x20\x52\x65\x67\x45\x78\x70\x20\x4f\x62\x6a\x65\x63\x74\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x46\x5b\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x22\x2b\x62\x2b\x22\x5d\x22\x5d\x3d\x62\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x7d\x29\x2c\x77\x3d\x64\x2e\x75\x61\x4d\x61\x74\x63\x68\x28\x76\x29\x2c\x77\x2e\x62\x72\x6f\x77\x73\x65\x72\x26\x26\x28\x64\x2e\x62\x72\x6f\x77\x73\x65\x72\x5b\x77\x2e\x62\x72\x6f\x77\x73\x65\x72\x5d\x3d\x21\x30\x2c\x64\x2e\x62\x72\x6f\x77\x73\x65\x72\x2e\x76\x65\x72\x73\x69\x6f\x6e\x3d\x77\x2e\x76\x65\x72\x73\x69\x6f\x6e\x29\x2c\x64\x2e\x62\x72\x6f\x77\x73\x65\x72\x2e\x77\x65\x62\x6b\x69\x74\x26\x26\x28\x64\x2e\x62\x72\x6f\x77\x73\x65\x72\x2e\x73\x61\x66\x61\x72\x69\x3d\x21\x30\x29\x2c\x45\x26\x26\x28\x64\x2e\x69\x6e\x41\x72\x72\x61\x79\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x45\x2e\x63\x61\x6c\x6c\x28\x62\x2c\x61\x29\x7d\x29\x2c\x69\x2e\x74\x65\x73\x74\x28\x22\xc2\xa0\x22\x29\x26\x26\x28\x6a\x3d\x2f\x5e\x5b\x5c\x73\x5c\x78\x41\x30\x5d\x2b\x2f\x2c\x6b\x3d\x2f\x5b\x5c\x73\x5c\x78\x41\x30\x5d\x2b\x24\x2f\x29\x2c\x67\x3d\x64\x28\x63\x29\x2c\x63\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x3f\x79\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x63\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64\x22\x2c\x79\x2c\x21\x31\x29\x2c\x64\x2e\x72\x65\x61\x64\x79\x28\x29\x7d\x3a\x63\x2e\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x26\x26\x28\x79\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x63\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x3d\x3d\x3d\x22\x63\x6f\x6d\x70\x6c\x65\x74\x65\x22\x26\x26\x28\x63\x2e\x64\x65\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x28\x22\x6f\x6e\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6e\x67\x65\x22\x2c\x79\x29\x2c\x64\x2e\x72\x65\x61\x64\x79\x28\x29\x29\x7d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x7d\x28\x29\x2c\x65\x3d\x22\x74\x68\x65\x6e\x20\x64\x6f\x6e\x65\x20\x66\x61\x69\x6c\x20\x69\x73\x52\x65\x73\x6f\x6c\x76\x65\x64\x20\x69\x73\x52\x65\x6a\x65\x63\x74\x65\x64\x20\x70\x72\x6f\x6d\x69\x73\x65\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x2c\x66\x3d\x5b\x5d\x2e\x73\x6c\x69\x63\x65\x3b\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x5f\x44\x65\x66\x65\x72\x72\x65\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x5b\x5d\x2c\x62\x2c\x63\x2c\x65\x2c\x66\x3d\x7b\x64\x6f\x6e\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x21\x65\x29\x7b\x76\x61\x72\x20\x63\x3d\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x67\x2c\x68\x2c\x69\x2c\x6a\x2c\x6b\x3b\x62\x26\x26\x28\x6b\x3d\x62\x2c\x62\x3d\x30\x29\x3b\x66\x6f\x72\x28\x67\x3d\x30\x2c\x68\x3d\x63\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x67\x3c\x68\x3b\x67\x2b\x2b\x29\x69\x3d\x63\x5b\x67\x5d\x2c\x6a\x3d\x64\x2e\x74\x79\x70\x65\x28\x69\x29\x2c\x6a\x3d\x3d\x3d\x22\x61\x72\x72\x61\x79\x22\x3f\x66\x2e\x64\x6f\x6e\x65\x2e\x61\x70\x70\x6c\x79\x28\x66\x2c\x69\x29\x3a\x6a\x3d\x3d\x3d\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x26\x26\x61\x2e\x70\x75\x73\x68\x28\x69\x29\x3b\x6b\x26\x26\x66\x2e\x72\x65\x73\x6f\x6c\x76\x65\x57\x69\x74\x68\x28\x6b\x5b\x30\x5d\x2c\x6b\x5b\x31\x5d\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x72\x65\x73\x6f\x6c\x76\x65\x57\x69\x74\x68\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x64\x2c\x66\x29\x7b\x69\x66\x28\x21\x65\x26\x26\x21\x62\x26\x26\x21\x63\x29\x7b\x66\x3d\x66\x7c\x7c\x5b\x5d\x2c\x63\x3d\x31\x3b\x74\x72\x79\x7b\x77\x68\x69\x6c\x65\x28\x61\x5b\x30\x5d\x29\x61\x2e\x73\x68\x69\x66\x74\x28\x29\x2e\x61\x70\x70\x6c\x79\x28\x64\x2c\x66\x29\x7d\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x62\x3d\x5b\x64\x2c\x66\x5d\x2c\x63\x3d\x30\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x72\x65\x73\x6f\x6c\x76\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x2e\x72\x65\x73\x6f\x6c\x76\x65\x57\x69\x74\x68\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x69\x73\x52\x65\x73\x6f\x6c\x76\x65\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x63\x7c\x7c\x62\x7d\x2c\x63\x61\x6e\x63\x65\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x65\x3d\x31\x2c\x61\x3d\x5b\x5d\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x7d\x3b\x72\x65\x74\x75\x72\x6e\x20\x66\x7d\x2c\x44\x65\x66\x65\x72\x72\x65\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x64\x2e\x5f\x44\x65\x66\x65\x72\x72\x65\x64\x28\x29\x2c\x63\x3d\x64\x2e\x5f\x44\x65\x66\x65\x72\x72\x65\x64\x28\x29\x2c\x66\x3b\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x62\x2c\x7b\x74\x68\x65\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x62\x2e\x64\x6f\x6e\x65\x28\x61\x29\x2e\x66\x61\x69\x6c\x28\x63\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x66\x61\x69\x6c\x3a\x63\x2e\x64\x6f\x6e\x65\x2c\x72\x65\x6a\x65\x63\x74\x57\x69\x74\x68\x3a\x63\x2e\x72\x65\x73\x6f\x6c\x76\x65\x57\x69\x74\x68\x2c\x72\x65\x6a\x65\x63\x74\x3a\x63\x2e\x72\x65\x73\x6f\x6c\x76\x65\x2c\x69\x73\x52\x65\x6a\x65\x63\x74\x65\x64\x3a\x63\x2e\x69\x73\x52\x65\x73\x6f\x6c\x76\x65\x64\x2c\x70\x72\x6f\x6d\x69\x73\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x61\x3d\x3d\x6e\x75\x6c\x6c\x29\x7b\x69\x66\x28\x66\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x3b\x66\x3d\x61\x3d\x7b\x7d\x7d\x76\x61\x72\x20\x63\x3d\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x77\x68\x69\x6c\x65\x28\x63\x2d\x2d\x29\x61\x5b\x65\x5b\x63\x5d\x5d\x3d\x62\x5b\x65\x5b\x63\x5d\x5d\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x7d\x29\x2c\x62\x2e\x64\x6f\x6e\x65\x28\x63\x2e\x63\x61\x6e\x63\x65\x6c\x29\x2e\x66\x61\x69\x6c\x28\x62\x2e\x63\x61\x6e\x63\x65\x6c\x29\x2c\x64\x65\x6c\x65\x74\x65\x20\x62\x2e\x63\x61\x6e\x63\x65\x6c\x2c\x61\x26\x26\x61\x2e\x63\x61\x6c\x6c\x28\x62\x2c\x62\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x7d\x2c\x77\x68\x65\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x29\x7b\x62\x5b\x61\x5d\x3d\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x31\x3f\x66\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x30\x29\x3a\x63\x2c\x2d\x2d\x67\x7c\x7c\x68\x2e\x72\x65\x73\x6f\x6c\x76\x65\x57\x69\x74\x68\x28\x68\x2c\x66\x2e\x63\x61\x6c\x6c\x28\x62\x2c\x30\x29\x29\x7d\x7d\x76\x61\x72\x20\x62\x3d\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x63\x3d\x30\x2c\x65\x3d\x62\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x67\x3d\x65\x2c\x68\x3d\x65\x3c\x3d\x31\x26\x26\x61\x26\x26\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2e\x70\x72\x6f\x6d\x69\x73\x65\x29\x3f\x61\x3a\x64\x2e\x44\x65\x66\x65\x72\x72\x65\x64\x28\x29\x3b\x69\x66\x28\x65\x3e\x31\x29\x7b\x66\x6f\x72\x28\x3b\x63\x3c\x65\x3b\x63\x2b\x2b\x29\x62\x5b\x63\x5d\x26\x26\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x5b\x63\x5d\x2e\x70\x72\x6f\x6d\x69\x73\x65\x29\x3f\x62\x5b\x63\x5d\x2e\x70\x72\x6f\x6d\x69\x73\x65\x28\x29\x2e\x74\x68\x65\x6e\x28\x69\x28\x63\x29\x2c\x68\x2e\x72\x65\x6a\x65\x63\x74\x29\x3a\x2d\x2d\x67\x3b\x67\x7c\x7c\x68\x2e\x72\x65\x73\x6f\x6c\x76\x65\x57\x69\x74\x68\x28\x68\x2c\x62\x29\x7d\x65\x6c\x73\x65\x20\x68\x21\x3d\x3d\x61\x26\x26\x68\x2e\x72\x65\x73\x6f\x6c\x76\x65\x57\x69\x74\x68\x28\x68\x2c\x65\x3f\x5b\x61\x5d\x3a\x5b\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x68\x2e\x70\x72\x6f\x6d\x69\x73\x65\x28\x29\x7d\x7d\x29\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x3d\x7b\x7d\x3b\x76\x61\x72\x20\x62\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x3b\x62\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x6e\x6f\x6e\x65\x22\x2c\x62\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x22\x20\x20\x20\x3c\x6c\x69\x6e\x6b\x2f\x3e\x3c\x74\x61\x62\x6c\x65\x3e\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x3c\x61\x20\x68\x72\x65\x66\x3d\x27\x2f\x61\x27\x20\x73\x74\x79\x6c\x65\x3d\x27\x63\x6f\x6c\x6f\x72\x3a\x72\x65\x64\x3b\x66\x6c\x6f\x61\x74\x3a\x6c\x65\x66\x74\x3b\x6f\x70\x61\x63\x69\x74\x79\x3a\x2e\x35\x35\x3b\x27\x3e\x61\x3c\x2f\x61\x3e\x3c\x69\x6e\x70\x75\x74\x20\x74\x79\x70\x65\x3d\x27\x63\x68\x65\x63\x6b\x62\x6f\x78\x27\x2f\x3e\x22\x3b\x76\x61\x72\x20\x65\x3d\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x2a\x22\x29\x2c\x66\x3d\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x61\x22\x29\x5b\x30\x5d\x2c\x67\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x73\x65\x6c\x65\x63\x74\x22\x29\x2c\x68\x3d\x67\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x6f\x70\x74\x69\x6f\x6e\x22\x29\x29\x2c\x69\x3d\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x69\x6e\x70\x75\x74\x22\x29\x5b\x30\x5d\x3b\x69\x66\x28\x65\x26\x26\x65\x2e\x6c\x65\x6e\x67\x74\x68\x26\x26\x66\x29\x7b\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x3d\x7b\x6c\x65\x61\x64\x69\x6e\x67\x57\x68\x69\x74\x65\x73\x70\x61\x63\x65\x3a\x62\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x33\x2c\x74\x62\x6f\x64\x79\x3a\x21\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x74\x62\x6f\x64\x79\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x68\x74\x6d\x6c\x53\x65\x72\x69\x61\x6c\x69\x7a\x65\x3a\x21\x21\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x6c\x69\x6e\x6b\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x73\x74\x79\x6c\x65\x3a\x2f\x72\x65\x64\x2f\x2e\x74\x65\x73\x74\x28\x66\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x79\x6c\x65\x22\x29\x29\x2c\x68\x72\x65\x66\x4e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x3a\x66\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x68\x72\x65\x66\x22\x29\x3d\x3d\x3d\x22\x2f\x61\x22\x2c\x6f\x70\x61\x63\x69\x74\x79\x3a\x2f\x5e\x30\x2e\x35\x35\x24\x2f\x2e\x74\x65\x73\x74\x28\x66\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x70\x61\x63\x69\x74\x79\x29\x2c\x63\x73\x73\x46\x6c\x6f\x61\x74\x3a\x21\x21\x66\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x46\x6c\x6f\x61\x74\x2c\x63\x68\x65\x63\x6b\x4f\x6e\x3a\x69\x2e\x76\x61\x6c\x75\x65\x3d\x3d\x3d\x22\x6f\x6e\x22\x2c\x6f\x70\x74\x53\x65\x6c\x65\x63\x74\x65\x64\x3a\x68\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x2c\x64\x65\x6c\x65\x74\x65\x45\x78\x70\x61\x6e\x64\x6f\x3a\x21\x30\x2c\x6f\x70\x74\x44\x69\x73\x61\x62\x6c\x65\x64\x3a\x21\x31\x2c\x63\x68\x65\x63\x6b\x43\x6c\x6f\x6e\x65\x3a\x21\x31\x2c\x6e\x6f\x43\x6c\x6f\x6e\x65\x45\x76\x65\x6e\x74\x3a\x21\x30\x2c\x6e\x6f\x43\x6c\x6f\x6e\x65\x43\x68\x65\x63\x6b\x65\x64\x3a\x21\x30\x2c\x62\x6f\x78\x4d\x6f\x64\x65\x6c\x3a\x6e\x75\x6c\x6c\x2c\x69\x6e\x6c\x69\x6e\x65\x42\x6c\x6f\x63\x6b\x4e\x65\x65\x64\x73\x4c\x61\x79\x6f\x75\x74\x3a\x21\x31\x2c\x73\x68\x72\x69\x6e\x6b\x57\x72\x61\x70\x42\x6c\x6f\x63\x6b\x73\x3a\x21\x31\x2c\x72\x65\x6c\x69\x61\x62\x6c\x65\x48\x69\x64\x64\x65\x6e\x4f\x66\x66\x73\x65\x74\x73\x3a\x21\x30\x2c\x72\x65\x6c\x69\x61\x62\x6c\x65\x4d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x3a\x21\x30\x7d\x2c\x69\x2e\x63\x68\x65\x63\x6b\x65\x64\x3d\x21\x30\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x6e\x6f\x43\x6c\x6f\x6e\x65\x43\x68\x65\x63\x6b\x65\x64\x3d\x69\x2e\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x21\x30\x29\x2e\x63\x68\x65\x63\x6b\x65\x64\x2c\x67\x2e\x64\x69\x73\x61\x62\x6c\x65\x64\x3d\x21\x30\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x6f\x70\x74\x44\x69\x73\x61\x62\x6c\x65\x64\x3d\x21\x68\x2e\x64\x69\x73\x61\x62\x6c\x65\x64\x3b\x76\x61\x72\x20\x6a\x3d\x6e\x75\x6c\x6c\x3b\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x73\x63\x72\x69\x70\x74\x45\x76\x61\x6c\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x6a\x3d\x3d\x3d\x6e\x75\x6c\x6c\x29\x7b\x76\x61\x72\x20\x62\x3d\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x65\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x73\x63\x72\x69\x70\x74\x22\x29\x2c\x66\x3d\x22\x73\x63\x72\x69\x70\x74\x22\x2b\x64\x2e\x6e\x6f\x77\x28\x29\x3b\x74\x72\x79\x7b\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x63\x2e\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x4e\x6f\x64\x65\x28\x22\x77\x69\x6e\x64\x6f\x77\x2e\x22\x2b\x66\x2b\x22\x3d\x31\x3b\x22\x29\x29\x7d\x63\x61\x74\x63\x68\x28\x67\x29\x7b\x7d\x62\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x65\x2c\x62\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x2c\x61\x5b\x66\x5d\x3f\x28\x6a\x3d\x21\x30\x2c\x64\x65\x6c\x65\x74\x65\x20\x61\x5b\x66\x5d\x29\x3a\x6a\x3d\x21\x31\x2c\x62\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x65\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x6a\x7d\x3b\x74\x72\x79\x7b\x64\x65\x6c\x65\x74\x65\x20\x62\x2e\x74\x65\x73\x74\x7d\x63\x61\x74\x63\x68\x28\x6b\x29\x7b\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x64\x65\x6c\x65\x74\x65\x45\x78\x70\x61\x6e\x64\x6f\x3d\x21\x31\x7d\x21\x62\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x26\x26\x62\x2e\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x26\x26\x62\x2e\x66\x69\x72\x65\x45\x76\x65\x6e\x74\x26\x26\x28\x62\x2e\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x28\x22\x6f\x6e\x63\x6c\x69\x63\x6b\x22\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6c\x28\x29\x7b\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x6e\x6f\x43\x6c\x6f\x6e\x65\x45\x76\x65\x6e\x74\x3d\x21\x31\x2c\x62\x2e\x64\x65\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x28\x22\x6f\x6e\x63\x6c\x69\x63\x6b\x22\x2c\x6c\x29\x7d\x29\x2c\x62\x2e\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x21\x30\x29\x2e\x66\x69\x72\x65\x45\x76\x65\x6e\x74\x28\x22\x6f\x6e\x63\x6c\x69\x63\x6b\x22\x29\x29\x2c\x62\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x2c\x62\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x22\x3c\x69\x6e\x70\x75\x74\x20\x74\x79\x70\x65\x3d\x27\x72\x61\x64\x69\x6f\x27\x20\x6e\x61\x6d\x65\x3d\x27\x72\x61\x64\x69\x6f\x74\x65\x73\x74\x27\x20\x63\x68\x65\x63\x6b\x65\x64\x3d\x27\x63\x68\x65\x63\x6b\x65\x64\x27\x2f\x3e\x22\x3b\x76\x61\x72\x20\x6d\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x46\x72\x61\x67\x6d\x65\x6e\x74\x28\x29\x3b\x6d\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x62\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x63\x68\x65\x63\x6b\x43\x6c\x6f\x6e\x65\x3d\x6d\x2e\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x21\x30\x29\x2e\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x21\x30\x29\x2e\x6c\x61\x73\x74\x43\x68\x69\x6c\x64\x2e\x63\x68\x65\x63\x6b\x65\x64\x2c\x64\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x2c\x62\x3d\x63\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x62\x6f\x64\x79\x22\x29\x5b\x30\x5d\x3b\x69\x66\x28\x62\x29\x7b\x61\x2e\x73\x74\x79\x6c\x65\x2e\x77\x69\x64\x74\x68\x3d\x61\x2e\x73\x74\x79\x6c\x65\x2e\x70\x61\x64\x64\x69\x6e\x67\x4c\x65\x66\x74\x3d\x22\x31\x70\x78\x22\x2c\x62\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x61\x29\x2c\x64\x2e\x62\x6f\x78\x4d\x6f\x64\x65\x6c\x3d\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x62\x6f\x78\x4d\x6f\x64\x65\x6c\x3d\x61\x2e\x6f\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68\x3d\x3d\x3d\x32\x2c\x22\x7a\x6f\x6f\x6d\x22\x69\x6e\x20\x61\x2e\x73\x74\x79\x6c\x65\x26\x26\x28\x61\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x69\x6e\x6c\x69\x6e\x65\x22\x2c\x61\x2e\x73\x74\x79\x6c\x65\x2e\x7a\x6f\x6f\x6d\x3d\x31\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x69\x6e\x6c\x69\x6e\x65\x42\x6c\x6f\x63\x6b\x4e\x65\x65\x64\x73\x4c\x61\x79\x6f\x75\x74\x3d\x61\x2e\x6f\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68\x3d\x3d\x3d\x32\x2c\x61\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x22\x2c\x61\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x22\x3c\x64\x69\x76\x20\x73\x74\x79\x6c\x65\x3d\x27\x77\x69\x64\x74\x68\x3a\x34\x70\x78\x3b\x27\x3e\x3c\x2f\x64\x69\x76\x3e\x22\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x73\x68\x72\x69\x6e\x6b\x57\x72\x61\x70\x42\x6c\x6f\x63\x6b\x73\x3d\x61\x2e\x6f\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68\x21\x3d\x3d\x32\x29\x2c\x61\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x22\x3c\x74\x61\x62\x6c\x65\x3e\x3c\x74\x72\x3e\x3c\x74\x64\x20\x73\x74\x79\x6c\x65\x3d\x27\x70\x61\x64\x64\x69\x6e\x67\x3a\x30\x3b\x62\x6f\x72\x64\x65\x72\x3a\x30\x3b\x64\x69\x73\x70\x6c\x61\x79\x3a\x6e\x6f\x6e\x65\x27\x3e\x3c\x2f\x74\x64\x3e\x3c\x74\x64\x3e\x74\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x22\x3b\x76\x61\x72\x20\x65\x3d\x61\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x74\x64\x22\x29\x3b\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x72\x65\x6c\x69\x61\x62\x6c\x65\x48\x69\x64\x64\x65\x6e\x4f\x66\x66\x73\x65\x74\x73\x3d\x65\x5b\x30\x5d\x2e\x6f\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x3d\x3d\x3d\x30\x2c\x65\x5b\x30\x5d\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x22\x2c\x65\x5b\x31\x5d\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x6e\x6f\x6e\x65\x22\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x72\x65\x6c\x69\x61\x62\x6c\x65\x48\x69\x64\x64\x65\x6e\x4f\x66\x66\x73\x65\x74\x73\x3d\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x72\x65\x6c\x69\x61\x62\x6c\x65\x48\x69\x64\x64\x65\x6e\x4f\x66\x66\x73\x65\x74\x73\x26\x26\x65\x5b\x30\x5d\x2e\x6f\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x3d\x3d\x3d\x30\x2c\x61\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x22\x22\x2c\x63\x2e\x64\x65\x66\x61\x75\x6c\x74\x56\x69\x65\x77\x26\x26\x63\x2e\x64\x65\x66\x61\x75\x6c\x74\x56\x69\x65\x77\x2e\x67\x65\x74\x43\x6f\x6d\x70\x75\x74\x65\x64\x53\x74\x79\x6c\x65\x26\x26\x28\x61\x2e\x73\x74\x79\x6c\x65\x2e\x77\x69\x64\x74\x68\x3d\x22\x31\x70\x78\x22\x2c\x61\x2e\x73\x74\x79\x6c\x65\x2e\x6d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x3d\x22\x30\x22\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x72\x65\x6c\x69\x61\x62\x6c\x65\x4d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x3d\x28\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x63\x2e\x64\x65\x66\x61\x75\x6c\x74\x56\x69\x65\x77\x2e\x67\x65\x74\x43\x6f\x6d\x70\x75\x74\x65\x64\x53\x74\x79\x6c\x65\x28\x61\x2c\x6e\x75\x6c\x6c\x29\x2e\x6d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x2c\x31\x30\x29\x7c\x7c\x30\x29\x3d\x3d\x3d\x30\x29\x2c\x62\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x61\x29\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x6e\x6f\x6e\x65\x22\x2c\x61\x3d\x65\x3d\x6e\x75\x6c\x6c\x7d\x7d\x29\x3b\x76\x61\x72\x20\x6e\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x3b\x61\x3d\x22\x6f\x6e\x22\x2b\x61\x3b\x69\x66\x28\x21\x62\x2e\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x29\x72\x65\x74\x75\x72\x6e\x21\x30\x3b\x76\x61\x72\x20\x64\x3d\x61\x20\x69\x6e\x20\x62\x3b\x64\x7c\x7c\x28\x62\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x61\x2c\x22\x72\x65\x74\x75\x72\x6e\x3b\x22\x29\x2c\x64\x3d\x74\x79\x70\x65\x6f\x66\x20\x62\x5b\x61\x5d\x3d\x3d\x3d\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x7d\x3b\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x73\x75\x62\x6d\x69\x74\x42\x75\x62\x62\x6c\x65\x73\x3d\x6e\x28\x22\x73\x75\x62\x6d\x69\x74\x22\x29\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x63\x68\x61\x6e\x67\x65\x42\x75\x62\x62\x6c\x65\x73\x3d\x6e\x28\x22\x63\x68\x61\x6e\x67\x65\x22\x29\x2c\x62\x3d\x65\x3d\x66\x3d\x6e\x75\x6c\x6c\x7d\x7d\x28\x29\x3b\x76\x61\x72\x20\x67\x3d\x2f\x5e\x28\x3f\x3a\x5c\x7b\x2e\x2a\x5c\x7d\x7c\x5c\x5b\x2e\x2a\x5c\x5d\x29\x24\x2f\x3b\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x63\x61\x63\x68\x65\x3a\x7b\x7d\x2c\x75\x75\x69\x64\x3a\x30\x2c\x65\x78\x70\x61\x6e\x64\x6f\x3a\x22\x6a\x51\x75\x65\x72\x79\x22\x2b\x28\x64\x2e\x66\x6e\x2e\x6a\x71\x75\x65\x72\x79\x2b\x4d\x61\x74\x68\x2e\x72\x61\x6e\x64\x6f\x6d\x28\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x44\x2f\x67\x2c\x22\x22\x29\x2c\x6e\x6f\x44\x61\x74\x61\x3a\x7b\x65\x6d\x62\x65\x64\x3a\x21\x30\x2c\x6f\x62\x6a\x65\x63\x74\x3a\x22\x63\x6c\x73\x69\x64\x3a\x44\x32\x37\x43\x44\x42\x36\x45\x2d\x41\x45\x36\x44\x2d\x31\x31\x63\x66\x2d\x39\x36\x42\x38\x2d\x34\x34\x34\x35\x35\x33\x35\x34\x30\x30\x30\x30\x22\x2c\x61\x70\x70\x6c\x65\x74\x3a\x21\x30\x7d\x2c\x68\x61\x73\x44\x61\x74\x61\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x61\x3d\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3f\x64\x2e\x63\x61\x63\x68\x65\x5b\x61\x5b\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x5d\x3a\x61\x5b\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x3b\x72\x65\x74\x75\x72\x6e\x21\x21\x61\x26\x26\x21\x69\x28\x61\x29\x7d\x2c\x64\x61\x74\x61\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x2c\x66\x29\x7b\x69\x66\x28\x64\x2e\x61\x63\x63\x65\x70\x74\x44\x61\x74\x61\x28\x61\x29\x29\x7b\x76\x61\x72\x20\x67\x3d\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x2c\x68\x3d\x74\x79\x70\x65\x6f\x66\x20\x63\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x2c\x69\x2c\x6a\x3d\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x2c\x6b\x3d\x6a\x3f\x64\x2e\x63\x61\x63\x68\x65\x3a\x61\x2c\x6c\x3d\x6a\x3f\x61\x5b\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x3a\x61\x5b\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x26\x26\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x3b\x69\x66\x28\x28\x21\x6c\x7c\x7c\x66\x26\x26\x6c\x26\x26\x21\x6b\x5b\x6c\x5d\x5b\x67\x5d\x29\x26\x26\x68\x26\x26\x65\x3d\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x3b\x6c\x7c\x7c\x28\x6a\x3f\x61\x5b\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x3d\x6c\x3d\x2b\x2b\x64\x2e\x75\x75\x69\x64\x3a\x6c\x3d\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x29\x2c\x6b\x5b\x6c\x5d\x7c\x7c\x28\x6b\x5b\x6c\x5d\x3d\x7b\x7d\x2c\x6a\x7c\x7c\x28\x6b\x5b\x6c\x5d\x2e\x74\x6f\x4a\x53\x4f\x4e\x3d\x64\x2e\x6e\x6f\x6f\x70\x29\x29\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x63\x3d\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x7c\x7c\x74\x79\x70\x65\x6f\x66\x20\x63\x3d\x3d\x3d\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x66\x3f\x6b\x5b\x6c\x5d\x5b\x67\x5d\x3d\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x6b\x5b\x6c\x5d\x5b\x67\x5d\x2c\x63\x29\x3a\x6b\x5b\x6c\x5d\x3d\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x6b\x5b\x6c\x5d\x2c\x63\x29\x3b\x69\x3d\x6b\x5b\x6c\x5d\x2c\x66\x26\x26\x28\x69\x5b\x67\x5d\x7c\x7c\x28\x69\x5b\x67\x5d\x3d\x7b\x7d\x29\x2c\x69\x3d\x69\x5b\x67\x5d\x29\x2c\x65\x21\x3d\x3d\x62\x26\x26\x28\x69\x5b\x63\x5d\x3d\x65\x29\x3b\x69\x66\x28\x63\x3d\x3d\x3d\x22\x65\x76\x65\x6e\x74\x73\x22\x26\x26\x21\x69\x5b\x63\x5d\x29\x72\x65\x74\x75\x72\x6e\x20\x69\x5b\x67\x5d\x26\x26\x69\x5b\x67\x5d\x2e\x65\x76\x65\x6e\x74\x73\x3b\x72\x65\x74\x75\x72\x6e\x20\x68\x3f\x69\x5b\x63\x5d\x3a\x69\x7d\x7d\x2c\x72\x65\x6d\x6f\x76\x65\x44\x61\x74\x61\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x2c\x63\x2c\x65\x29\x7b\x69\x66\x28\x64\x2e\x61\x63\x63\x65\x70\x74\x44\x61\x74\x61\x28\x62\x29\x29\x7b\x76\x61\x72\x20\x66\x3d\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x2c\x67\x3d\x62\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x2c\x68\x3d\x67\x3f\x64\x2e\x63\x61\x63\x68\x65\x3a\x62\x2c\x6a\x3d\x67\x3f\x62\x5b\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x3a\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x3b\x69\x66\x28\x21\x68\x5b\x6a\x5d\x29\x72\x65\x74\x75\x72\x6e\x3b\x69\x66\x28\x63\x29\x7b\x76\x61\x72\x20\x6b\x3d\x65\x3f\x68\x5b\x6a\x5d\x5b\x66\x5d\x3a\x68\x5b\x6a\x5d\x3b\x69\x66\x28\x6b\x29\x7b\x64\x65\x6c\x65\x74\x65\x20\x6b\x5b\x63\x5d\x3b\x69\x66\x28\x21\x69\x28\x6b\x29\x29\x72\x65\x74\x75\x72\x6e\x7d\x7d\x69\x66\x28\x65\x29\x7b\x64\x65\x6c\x65\x74\x65\x20\x68\x5b\x6a\x5d\x5b\x66\x5d\x3b\x69\x66\x28\x21\x69\x28\x68\x5b\x6a\x5d\x29\x29\x72\x65\x74\x75\x72\x6e\x7d\x76\x61\x72\x20\x6c\x3d\x68\x5b\x6a\x5d\x5b\x66\x5d\x3b\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x64\x65\x6c\x65\x74\x65\x45\x78\x70\x61\x6e\x64\x6f\x7c\x7c\x68\x21\x3d\x61\x3f\x64\x65\x6c\x65\x74\x65\x20\x68\x5b\x6a\x5d\x3a\x68\x5b\x6a\x5d\x3d\x6e\x75\x6c\x6c\x2c\x6c\x3f\x28\x68\x5b\x6a\x5d\x3d\x7b\x7d\x2c\x67\x7c\x7c\x28\x68\x5b\x6a\x5d\x2e\x74\x6f\x4a\x53\x4f\x4e\x3d\x64\x2e\x6e\x6f\x6f\x70\x29\x2c\x68\x5b\x6a\x5d\x5b\x66\x5d\x3d\x6c\x29\x3a\x67\x26\x26\x28\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x64\x65\x6c\x65\x74\x65\x45\x78\x70\x61\x6e\x64\x6f\x3f\x64\x65\x6c\x65\x74\x65\x20\x62\x5b\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x3a\x62\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x3f\x62\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x29\x3a\x62\x5b\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x3d\x6e\x75\x6c\x6c\x29\x7d\x7d\x2c\x5f\x64\x61\x74\x61\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x64\x61\x74\x61\x28\x61\x2c\x62\x2c\x63\x2c\x21\x30\x29\x7d\x2c\x61\x63\x63\x65\x70\x74\x44\x61\x74\x61\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x7b\x76\x61\x72\x20\x62\x3d\x64\x2e\x6e\x6f\x44\x61\x74\x61\x5b\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x3b\x69\x66\x28\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x21\x3d\x3d\x21\x30\x26\x26\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6c\x61\x73\x73\x69\x64\x22\x29\x3d\x3d\x3d\x62\x7d\x72\x65\x74\x75\x72\x6e\x21\x30\x7d\x7d\x29\x2c\x64\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x64\x61\x74\x61\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x76\x61\x72\x20\x65\x3d\x6e\x75\x6c\x6c\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x29\x7b\x69\x66\x28\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x7b\x65\x3d\x64\x2e\x64\x61\x74\x61\x28\x74\x68\x69\x73\x5b\x30\x5d\x29\x3b\x69\x66\x28\x74\x68\x69\x73\x5b\x30\x5d\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x7b\x76\x61\x72\x20\x66\x3d\x74\x68\x69\x73\x5b\x30\x5d\x2e\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x2c\x67\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x69\x3d\x30\x2c\x6a\x3d\x66\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x69\x3c\x6a\x3b\x69\x2b\x2b\x29\x67\x3d\x66\x5b\x69\x5d\x2e\x6e\x61\x6d\x65\x2c\x67\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x64\x61\x74\x61\x2d\x22\x29\x3d\x3d\x3d\x30\x26\x26\x28\x67\x3d\x67\x2e\x73\x75\x62\x73\x74\x72\x28\x35\x29\x2c\x68\x28\x74\x68\x69\x73\x5b\x30\x5d\x2c\x67\x2c\x65\x5b\x67\x5d\x29\x29\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x65\x7d\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x64\x2e\x64\x61\x74\x61\x28\x74\x68\x69\x73\x2c\x61\x29\x7d\x29\x3b\x76\x61\x72\x20\x6b\x3d\x61\x2e\x73\x70\x6c\x69\x74\x28\x22\x2e\x22\x29\x3b\x6b\x5b\x31\x5d\x3d\x6b\x5b\x31\x5d\x3f\x22\x2e\x22\x2b\x6b\x5b\x31\x5d\x3a\x22\x22\x3b\x69\x66\x28\x63\x3d\x3d\x3d\x62\x29\x7b\x65\x3d\x74\x68\x69\x73\x2e\x74\x72\x69\x67\x67\x65\x72\x48\x61\x6e\x64\x6c\x65\x72\x28\x22\x67\x65\x74\x44\x61\x74\x61\x22\x2b\x6b\x5b\x31\x5d\x2b\x22\x21\x22\x2c\x5b\x6b\x5b\x30\x5d\x5d\x29\x2c\x65\x3d\x3d\x3d\x62\x26\x26\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x26\x26\x28\x65\x3d\x64\x2e\x64\x61\x74\x61\x28\x74\x68\x69\x73\x5b\x30\x5d\x2c\x61\x29\x2c\x65\x3d\x68\x28\x74\x68\x69\x73\x5b\x30\x5d\x2c\x61\x2c\x65\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x3d\x3d\x3d\x62\x26\x26\x6b\x5b\x31\x5d\x3f\x74\x68\x69\x73\x2e\x64\x61\x74\x61\x28\x6b\x5b\x30\x5d\x29\x3a\x65\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x62\x3d\x64\x28\x74\x68\x69\x73\x29\x2c\x65\x3d\x5b\x6b\x5b\x30\x5d\x2c\x63\x5d\x3b\x62\x2e\x74\x72\x69\x67\x67\x65\x72\x48\x61\x6e\x64\x6c\x65\x72\x28\x22\x73\x65\x74\x44\x61\x74\x61\x22\x2b\x6b\x5b\x31\x5d\x2b\x22\x21\x22\x2c\x65\x29\x2c\x64\x2e\x64\x61\x74\x61\x28\x74\x68\x69\x73\x2c\x61\x2c\x63\x29\x2c\x62\x2e\x74\x72\x69\x67\x67\x65\x72\x48\x61\x6e\x64\x6c\x65\x72\x28\x22\x63\x68\x61\x6e\x67\x65\x44\x61\x74\x61\x22\x2b\x6b\x5b\x31\x5d\x2b\x22\x21\x22\x2c\x65\x29\x7d\x29\x7d\x2c\x72\x65\x6d\x6f\x76\x65\x44\x61\x74\x61\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x64\x2e\x72\x65\x6d\x6f\x76\x65\x44\x61\x74\x61\x28\x74\x68\x69\x73\x2c\x61\x29\x7d\x29\x7d\x7d\x29\x2c\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x71\x75\x65\x75\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x69\x66\x28\x61\x29\x7b\x62\x3d\x28\x62\x7c\x7c\x22\x66\x78\x22\x29\x2b\x22\x71\x75\x65\x75\x65\x22\x3b\x76\x61\x72\x20\x65\x3d\x64\x2e\x5f\x64\x61\x74\x61\x28\x61\x2c\x62\x29\x3b\x69\x66\x28\x21\x63\x29\x72\x65\x74\x75\x72\x6e\x20\x65\x7c\x7c\x5b\x5d\x3b\x21\x65\x7c\x7c\x64\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x29\x3f\x65\x3d\x64\x2e\x5f\x64\x61\x74\x61\x28\x61\x2c\x62\x2c\x64\x2e\x6d\x61\x6b\x65\x41\x72\x72\x61\x79\x28\x63\x29\x29\x3a\x65\x2e\x70\x75\x73\x68\x28\x63\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x7d\x7d\x2c\x64\x65\x71\x75\x65\x75\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x62\x3d\x62\x7c\x7c\x22\x66\x78\x22\x3b\x76\x61\x72\x20\x63\x3d\x64\x2e\x71\x75\x65\x75\x65\x28\x61\x2c\x62\x29\x2c\x65\x3d\x63\x2e\x73\x68\x69\x66\x74\x28\x29\x3b\x65\x3d\x3d\x3d\x22\x69\x6e\x70\x72\x6f\x67\x72\x65\x73\x73\x22\x26\x26\x28\x65\x3d\x63\x2e\x73\x68\x69\x66\x74\x28\x29\x29\x2c\x65\x26\x26\x28\x62\x3d\x3d\x3d\x22\x66\x78\x22\x26\x26\x63\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x22\x69\x6e\x70\x72\x6f\x67\x72\x65\x73\x73\x22\x29\x2c\x65\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x64\x2e\x64\x65\x71\x75\x65\x75\x65\x28\x61\x2c\x62\x29\x7d\x29\x29\x2c\x63\x2e\x6c\x65\x6e\x67\x74\x68\x7c\x7c\x64\x2e\x72\x65\x6d\x6f\x76\x65\x44\x61\x74\x61\x28\x61\x2c\x62\x2b\x22\x71\x75\x65\x75\x65\x22\x2c\x21\x30\x29\x7d\x7d\x29\x2c\x64\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x71\x75\x65\x75\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x74\x79\x70\x65\x6f\x66\x20\x61\x21\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x63\x3d\x61\x2c\x61\x3d\x22\x66\x78\x22\x29\x3b\x69\x66\x28\x63\x3d\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x71\x75\x65\x75\x65\x28\x74\x68\x69\x73\x5b\x30\x5d\x2c\x61\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x76\x61\x72\x20\x65\x3d\x64\x2e\x71\x75\x65\x75\x65\x28\x74\x68\x69\x73\x2c\x61\x2c\x63\x29\x3b\x61\x3d\x3d\x3d\x22\x66\x78\x22\x26\x26\x65\x5b\x30\x5d\x21\x3d\x3d\x22\x69\x6e\x70\x72\x6f\x67\x72\x65\x73\x73\x22\x26\x26\x64\x2e\x64\x65\x71\x75\x65\x75\x65\x28\x74\x68\x69\x73\x2c\x61\x29\x7d\x29\x7d\x2c\x64\x65\x71\x75\x65\x75\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x64\x2e\x64\x65\x71\x75\x65\x75\x65\x28\x74\x68\x69\x73\x2c\x61\x29\x7d\x29\x7d\x2c\x64\x65\x6c\x61\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x61\x3d\x64\x2e\x66\x78\x3f\x64\x2e\x66\x78\x2e\x73\x70\x65\x65\x64\x73\x5b\x61\x5d\x7c\x7c\x61\x3a\x61\x2c\x62\x3d\x62\x7c\x7c\x22\x66\x78\x22\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x71\x75\x65\x75\x65\x28\x62\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x63\x3d\x74\x68\x69\x73\x3b\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x64\x2e\x64\x65\x71\x75\x65\x75\x65\x28\x63\x2c\x62\x29\x7d\x2c\x61\x29\x7d\x29\x7d\x2c\x63\x6c\x65\x61\x72\x51\x75\x65\x75\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x71\x75\x65\x75\x65\x28\x61\x7c\x7c\x22\x66\x78\x22\x2c\x5b\x5d\x29\x7d\x7d\x29\x3b\x76\x61\x72\x20\x6a\x3d\x2f\x5b\x5c\x6e\x5c\x74\x5c\x72\x5d\x2f\x67\x2c\x6b\x3d\x2f\x5c\x73\x2b\x2f\x2c\x6c\x3d\x2f\x5c\x72\x2f\x67\x2c\x6d\x3d\x2f\x5e\x28\x3f\x3a\x68\x72\x65\x66\x7c\x73\x72\x63\x7c\x73\x74\x79\x6c\x65\x29\x24\x2f\x2c\x6e\x3d\x2f\x5e\x28\x3f\x3a\x62\x75\x74\x74\x6f\x6e\x7c\x69\x6e\x70\x75\x74\x29\x24\x2f\x69\x2c\x6f\x3d\x2f\x5e\x28\x3f\x3a\x62\x75\x74\x74\x6f\x6e\x7c\x69\x6e\x70\x75\x74\x7c\x6f\x62\x6a\x65\x63\x74\x7c\x73\x65\x6c\x65\x63\x74\x7c\x74\x65\x78\x74\x61\x72\x65\x61\x29\x24\x2f\x69\x2c\x70\x3d\x2f\x5e\x61\x28\x3f\x3a\x72\x65\x61\x29\x3f\x24\x2f\x69\x2c\x71\x3d\x2f\x5e\x28\x3f\x3a\x72\x61\x64\x69\x6f\x7c\x63\x68\x65\x63\x6b\x62\x6f\x78\x29\x24\x2f\x69\x3b\x64\x2e\x70\x72\x6f\x70\x73\x3d\x7b\x22\x66\x6f\x72\x22\x3a\x22\x68\x74\x6d\x6c\x46\x6f\x72\x22\x2c\x22\x63\x6c\x61\x73\x73\x22\x3a\x22\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x22\x2c\x72\x65\x61\x64\x6f\x6e\x6c\x79\x3a\x22\x72\x65\x61\x64\x4f\x6e\x6c\x79\x22\x2c\x6d\x61\x78\x6c\x65\x6e\x67\x74\x68\x3a\x22\x6d\x61\x78\x4c\x65\x6e\x67\x74\x68\x22\x2c\x63\x65\x6c\x6c\x73\x70\x61\x63\x69\x6e\x67\x3a\x22\x63\x65\x6c\x6c\x53\x70\x61\x63\x69\x6e\x67\x22\x2c\x72\x6f\x77\x73\x70\x61\x6e\x3a\x22\x72\x6f\x77\x53\x70\x61\x6e\x22\x2c\x63\x6f\x6c\x73\x70\x61\x6e\x3a\x22\x63\x6f\x6c\x53\x70\x61\x6e\x22\x2c\x74\x61\x62\x69\x6e\x64\x65\x78\x3a\x22\x74\x61\x62\x49\x6e\x64\x65\x78\x22\x2c\x75\x73\x65\x6d\x61\x70\x3a\x22\x75\x73\x65\x4d\x61\x70\x22\x2c\x66\x72\x61\x6d\x65\x62\x6f\x72\x64\x65\x72\x3a\x22\x66\x72\x61\x6d\x65\x42\x6f\x72\x64\x65\x72\x22\x7d\x2c\x64\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x61\x74\x74\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x61\x63\x63\x65\x73\x73\x28\x74\x68\x69\x73\x2c\x61\x2c\x62\x2c\x21\x30\x2c\x64\x2e\x61\x74\x74\x72\x29\x7d\x2c\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x64\x2e\x61\x74\x74\x72\x28\x74\x68\x69\x73\x2c\x61\x2c\x22\x22\x29\x2c\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x74\x68\x69\x73\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x61\x29\x7d\x29\x7d\x2c\x61\x64\x64\x43\x6c\x61\x73\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x64\x28\x74\x68\x69\x73\x29\x3b\x63\x2e\x61\x64\x64\x43\x6c\x61\x73\x73\x28\x61\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x62\x2c\x63\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x61\x73\x73\x22\x29\x29\x29\x7d\x29\x3b\x69\x66\x28\x61\x26\x26\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x7b\x76\x61\x72\x20\x62\x3d\x28\x61\x7c\x7c\x22\x22\x29\x2e\x73\x70\x6c\x69\x74\x28\x6b\x29\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x63\x3d\x30\x2c\x65\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x63\x3c\x65\x3b\x63\x2b\x2b\x29\x7b\x76\x61\x72\x20\x66\x3d\x74\x68\x69\x73\x5b\x63\x5d\x3b\x69\x66\x28\x66\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x69\x66\x28\x66\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x29\x7b\x76\x61\x72\x20\x67\x3d\x22\x20\x22\x2b\x66\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x2b\x22\x20\x22\x2c\x68\x3d\x66\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x69\x3d\x30\x2c\x6a\x3d\x62\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x69\x3c\x6a\x3b\x69\x2b\x2b\x29\x67\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x20\x22\x2b\x62\x5b\x69\x5d\x2b\x22\x20\x22\x29\x3c\x30\x26\x26\x28\x68\x2b\x3d\x22\x20\x22\x2b\x62\x5b\x69\x5d\x29\x3b\x66\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x3d\x64\x2e\x74\x72\x69\x6d\x28\x68\x29\x7d\x65\x6c\x73\x65\x20\x66\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x3d\x61\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x64\x28\x74\x68\x69\x73\x29\x3b\x63\x2e\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x28\x61\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x62\x2c\x63\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x61\x73\x73\x22\x29\x29\x29\x7d\x29\x3b\x69\x66\x28\x61\x26\x26\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x7c\x7c\x61\x3d\x3d\x3d\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x28\x61\x7c\x7c\x22\x22\x29\x2e\x73\x70\x6c\x69\x74\x28\x6b\x29\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x65\x3d\x30\x2c\x66\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x65\x3c\x66\x3b\x65\x2b\x2b\x29\x7b\x76\x61\x72\x20\x67\x3d\x74\x68\x69\x73\x5b\x65\x5d\x3b\x69\x66\x28\x67\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x67\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x29\x69\x66\x28\x61\x29\x7b\x76\x61\x72\x20\x68\x3d\x28\x22\x20\x22\x2b\x67\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x2b\x22\x20\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6a\x2c\x22\x20\x22\x29\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x69\x3d\x30\x2c\x6c\x3d\x63\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x69\x3c\x6c\x3b\x69\x2b\x2b\x29\x68\x3d\x68\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x22\x20\x22\x2b\x63\x5b\x69\x5d\x2b\x22\x20\x22\x2c\x22\x20\x22\x29\x3b\x67\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x3d\x64\x2e\x74\x72\x69\x6d\x28\x68\x29\x7d\x65\x6c\x73\x65\x20\x67\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x3d\x22\x22\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x74\x6f\x67\x67\x6c\x65\x43\x6c\x61\x73\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x74\x79\x70\x65\x6f\x66\x20\x61\x2c\x65\x3d\x74\x79\x70\x65\x6f\x66\x20\x62\x3d\x3d\x3d\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x3b\x69\x66\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x29\x7b\x76\x61\x72\x20\x65\x3d\x64\x28\x74\x68\x69\x73\x29\x3b\x65\x2e\x74\x6f\x67\x67\x6c\x65\x43\x6c\x61\x73\x73\x28\x61\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x63\x2c\x65\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x61\x73\x73\x22\x29\x2c\x62\x29\x2c\x62\x29\x7d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x63\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x7b\x76\x61\x72\x20\x66\x2c\x67\x3d\x30\x2c\x68\x3d\x64\x28\x74\x68\x69\x73\x29\x2c\x69\x3d\x62\x2c\x6a\x3d\x61\x2e\x73\x70\x6c\x69\x74\x28\x6b\x29\x3b\x77\x68\x69\x6c\x65\x28\x66\x3d\x6a\x5b\x67\x2b\x2b\x5d\x29\x69\x3d\x65\x3f\x69\x3a\x21\x68\x2e\x68\x61\x73\x43\x6c\x61\x73\x73\x28\x66\x29\x2c\x68\x5b\x69\x3f\x22\x61\x64\x64\x43\x6c\x61\x73\x73\x22\x3a\x22\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x22\x5d\x28\x66\x29\x7d\x65\x6c\x73\x65\x20\x69\x66\x28\x63\x3d\x3d\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x7c\x7c\x63\x3d\x3d\x3d\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x29\x74\x68\x69\x73\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x26\x26\x64\x2e\x5f\x64\x61\x74\x61\x28\x74\x68\x69\x73\x2c\x22\x5f\x5f\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x5f\x5f\x22\x2c\x74\x68\x69\x73\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x29\x2c\x74\x68\x69\x73\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x3d\x74\x68\x69\x73\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x7c\x7c\x61\x3d\x3d\x3d\x21\x31\x3f\x22\x22\x3a\x64\x2e\x5f\x64\x61\x74\x61\x28\x74\x68\x69\x73\x2c\x22\x5f\x5f\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x5f\x5f\x22\x29\x7c\x7c\x22\x22\x7d\x29\x7d\x2c\x68\x61\x73\x43\x6c\x61\x73\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x22\x20\x22\x2b\x61\x2b\x22\x20\x22\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x63\x3d\x30\x2c\x64\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x63\x3c\x64\x3b\x63\x2b\x2b\x29\x69\x66\x28\x28\x22\x20\x22\x2b\x74\x68\x69\x73\x5b\x63\x5d\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x2b\x22\x20\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6a\x2c\x22\x20\x22\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x62\x29\x3e\x2d\x31\x29\x72\x65\x74\x75\x72\x6e\x21\x30\x3b\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\x2c\x76\x61\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x21\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x7b\x76\x61\x72\x20\x63\x3d\x74\x68\x69\x73\x5b\x30\x5d\x3b\x69\x66\x28\x63\x29\x7b\x69\x66\x28\x64\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x63\x2c\x22\x6f\x70\x74\x69\x6f\x6e\x22\x29\x29\x7b\x76\x61\x72\x20\x65\x3d\x63\x2e\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x2e\x76\x61\x6c\x75\x65\x3b\x72\x65\x74\x75\x72\x6e\x21\x65\x7c\x7c\x65\x2e\x73\x70\x65\x63\x69\x66\x69\x65\x64\x3f\x63\x2e\x76\x61\x6c\x75\x65\x3a\x63\x2e\x74\x65\x78\x74\x7d\x69\x66\x28\x64\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x63\x2c\x22\x73\x65\x6c\x65\x63\x74\x22\x29\x29\x7b\x76\x61\x72\x20\x66\x3d\x63\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\x65\x78\x2c\x67\x3d\x5b\x5d\x2c\x68\x3d\x63\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x69\x3d\x63\x2e\x74\x79\x70\x65\x3d\x3d\x3d\x22\x73\x65\x6c\x65\x63\x74\x2d\x6f\x6e\x65\x22\x3b\x69\x66\x28\x66\x3c\x30\x29\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x6a\x3d\x69\x3f\x66\x3a\x30\x2c\x6b\x3d\x69\x3f\x66\x2b\x31\x3a\x68\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x6a\x3c\x6b\x3b\x6a\x2b\x2b\x29\x7b\x76\x61\x72\x20\x6d\x3d\x68\x5b\x6a\x5d\x3b\x69\x66\x28\x6d\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x26\x26\x28\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x6f\x70\x74\x44\x69\x73\x61\x62\x6c\x65\x64\x3f\x21\x6d\x2e\x64\x69\x73\x61\x62\x6c\x65\x64\x3a\x6d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x69\x73\x61\x62\x6c\x65\x64\x22\x29\x3d\x3d\x3d\x6e\x75\x6c\x6c\x29\x26\x26\x28\x21\x6d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x64\x69\x73\x61\x62\x6c\x65\x64\x7c\x7c\x21\x64\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x6d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x22\x6f\x70\x74\x67\x72\x6f\x75\x70\x22\x29\x29\x29\x7b\x61\x3d\x64\x28\x6d\x29\x2e\x76\x61\x6c\x28\x29\x3b\x69\x66\x28\x69\x29\x72\x65\x74\x75\x72\x6e\x20\x61\x3b\x67\x2e\x70\x75\x73\x68\x28\x61\x29\x7d\x7d\x69\x66\x28\x69\x26\x26\x21\x67\x2e\x6c\x65\x6e\x67\x74\x68\x26\x26\x68\x2e\x6c\x65\x6e\x67\x74\x68\x29\x72\x65\x74\x75\x72\x6e\x20\x64\x28\x68\x5b\x66\x5d\x29\x2e\x76\x61\x6c\x28\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x67\x7d\x69\x66\x28\x71\x2e\x74\x65\x73\x74\x28\x63\x2e\x74\x79\x70\x65\x29\x26\x26\x21\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x63\x68\x65\x63\x6b\x4f\x6e\x29\x72\x65\x74\x75\x72\x6e\x20\x63\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x76\x61\x6c\x75\x65\x22\x29\x3d\x3d\x3d\x6e\x75\x6c\x6c\x3f\x22\x6f\x6e\x22\x3a\x63\x2e\x76\x61\x6c\x75\x65\x3b\x72\x65\x74\x75\x72\x6e\x28\x63\x2e\x76\x61\x6c\x75\x65\x7c\x7c\x22\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6c\x2c\x22\x22\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x62\x7d\x76\x61\x72\x20\x6e\x3d\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x64\x28\x74\x68\x69\x73\x29\x2c\x65\x3d\x61\x3b\x69\x66\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x7b\x6e\x26\x26\x28\x65\x3d\x61\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x62\x2c\x63\x2e\x76\x61\x6c\x28\x29\x29\x29\x2c\x65\x3d\x3d\x6e\x75\x6c\x6c\x3f\x65\x3d\x22\x22\x3a\x74\x79\x70\x65\x6f\x66\x20\x65\x3d\x3d\x3d\x22\x6e\x75\x6d\x62\x65\x72\x22\x3f\x65\x2b\x3d\x22\x22\x3a\x64\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x29\x26\x26\x28\x65\x3d\x64\x2e\x6d\x61\x70\x28\x65\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x3d\x3d\x6e\x75\x6c\x6c\x3f\x22\x22\x3a\x61\x2b\x22\x22\x7d\x29\x29\x3b\x69\x66\x28\x64\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x29\x26\x26\x71\x2e\x74\x65\x73\x74\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x29\x29\x74\x68\x69\x73\x2e\x63\x68\x65\x63\x6b\x65\x64\x3d\x64\x2e\x69\x6e\x41\x72\x72\x61\x79\x28\x63\x2e\x76\x61\x6c\x28\x29\x2c\x65\x29\x3e\x3d\x30\x3b\x65\x6c\x73\x65\x20\x69\x66\x28\x64\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x74\x68\x69\x73\x2c\x22\x73\x65\x6c\x65\x63\x74\x22\x29\x29\x7b\x76\x61\x72\x20\x66\x3d\x64\x2e\x6d\x61\x6b\x65\x41\x72\x72\x61\x79\x28\x65\x29\x3b\x64\x28\x22\x6f\x70\x74\x69\x6f\x6e\x22\x2c\x74\x68\x69\x73\x29\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x3d\x64\x2e\x69\x6e\x41\x72\x72\x61\x79\x28\x64\x28\x74\x68\x69\x73\x29\x2e\x76\x61\x6c\x28\x29\x2c\x66\x29\x3e\x3d\x30\x7d\x29\x2c\x66\x2e\x6c\x65\x6e\x67\x74\x68\x7c\x7c\x28\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\x65\x78\x3d\x2d\x31\x29\x7d\x65\x6c\x73\x65\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x3d\x65\x7d\x7d\x29\x7d\x7d\x29\x2c\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x61\x74\x74\x72\x46\x6e\x3a\x7b\x76\x61\x6c\x3a\x21\x30\x2c\x63\x73\x73\x3a\x21\x30\x2c\x68\x74\x6d\x6c\x3a\x21\x30\x2c\x74\x65\x78\x74\x3a\x21\x30\x2c\x64\x61\x74\x61\x3a\x21\x30\x2c\x77\x69\x64\x74\x68\x3a\x21\x30\x2c\x68\x65\x69\x67\x68\x74\x3a\x21\x30\x2c\x6f\x66\x66\x73\x65\x74\x3a\x21\x30\x7d\x2c\x61\x74\x74\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x2c\x66\x29\x7b\x69\x66\x28\x21\x61\x7c\x7c\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x33\x7c\x7c\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x38\x7c\x7c\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x32\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x3b\x69\x66\x28\x66\x26\x26\x63\x20\x69\x6e\x20\x64\x2e\x61\x74\x74\x72\x46\x6e\x29\x72\x65\x74\x75\x72\x6e\x20\x64\x28\x61\x29\x5b\x63\x5d\x28\x65\x29\x3b\x76\x61\x72\x20\x67\x3d\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x31\x7c\x7c\x21\x64\x2e\x69\x73\x58\x4d\x4c\x44\x6f\x63\x28\x61\x29\x2c\x68\x3d\x65\x21\x3d\x3d\x62\x3b\x63\x3d\x67\x26\x26\x64\x2e\x70\x72\x6f\x70\x73\x5b\x63\x5d\x7c\x7c\x63\x3b\x69\x66\x28\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x7b\x76\x61\x72\x20\x69\x3d\x6d\x2e\x74\x65\x73\x74\x28\x63\x29\x3b\x69\x66\x28\x63\x3d\x3d\x3d\x22\x73\x65\x6c\x65\x63\x74\x65\x64\x22\x26\x26\x21\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x6f\x70\x74\x53\x65\x6c\x65\x63\x74\x65\x64\x29\x7b\x76\x61\x72\x20\x6a\x3d\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x6a\x26\x26\x28\x6a\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\x65\x78\x2c\x6a\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x26\x26\x6a\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\x65\x78\x29\x7d\x69\x66\x28\x28\x63\x20\x69\x6e\x20\x61\x7c\x7c\x61\x5b\x63\x5d\x21\x3d\x3d\x62\x29\x26\x26\x67\x26\x26\x21\x69\x29\x7b\x68\x26\x26\x28\x63\x3d\x3d\x3d\x22\x74\x79\x70\x65\x22\x26\x26\x6e\x2e\x74\x65\x73\x74\x28\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x26\x26\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x26\x26\x64\x2e\x65\x72\x72\x6f\x72\x28\x22\x74\x79\x70\x65\x20\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x63\x61\x6e\x27\x74\x20\x62\x65\x20\x63\x68\x61\x6e\x67\x65\x64\x22\x29\x2c\x65\x3d\x3d\x3d\x6e\x75\x6c\x6c\x3f\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x61\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x63\x29\x3a\x61\x5b\x63\x5d\x3d\x65\x29\x3b\x69\x66\x28\x64\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x61\x2c\x22\x66\x6f\x72\x6d\x22\x29\x26\x26\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\x28\x63\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\x28\x63\x29\x2e\x6e\x6f\x64\x65\x56\x61\x6c\x75\x65\x3b\x69\x66\x28\x63\x3d\x3d\x3d\x22\x74\x61\x62\x49\x6e\x64\x65\x78\x22\x29\x7b\x76\x61\x72\x20\x6b\x3d\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\x28\x22\x74\x61\x62\x49\x6e\x64\x65\x78\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x6b\x26\x26\x6b\x2e\x73\x70\x65\x63\x69\x66\x69\x65\x64\x3f\x6b\x2e\x76\x61\x6c\x75\x65\x3a\x6f\x2e\x74\x65\x73\x74\x28\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x7c\x7c\x70\x2e\x74\x65\x73\x74\x28\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x26\x26\x61\x2e\x68\x72\x65\x66\x3f\x30\x3a\x62\x7d\x72\x65\x74\x75\x72\x6e\x20\x61\x5b\x63\x5d\x7d\x69\x66\x28\x21\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x73\x74\x79\x6c\x65\x26\x26\x67\x26\x26\x63\x3d\x3d\x3d\x22\x73\x74\x79\x6c\x65\x22\x29\x7b\x68\x26\x26\x28\x61\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x54\x65\x78\x74\x3d\x22\x22\x2b\x65\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x54\x65\x78\x74\x7d\x68\x26\x26\x61\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x63\x2c\x22\x22\x2b\x65\x29\x3b\x69\x66\x28\x21\x61\x2e\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x5b\x63\x5d\x26\x26\x28\x61\x2e\x68\x61\x73\x41\x74\x74\x72\x69\x62\x75\x74\x65\x26\x26\x21\x61\x2e\x68\x61\x73\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x63\x29\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x3b\x76\x61\x72\x20\x6c\x3d\x21\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x68\x72\x65\x66\x4e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x26\x26\x67\x26\x26\x69\x3f\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x63\x2c\x32\x29\x3a\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x63\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x6c\x3d\x3d\x3d\x6e\x75\x6c\x6c\x3f\x62\x3a\x6c\x7d\x68\x26\x26\x28\x61\x5b\x63\x5d\x3d\x65\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x5b\x63\x5d\x7d\x7d\x29\x3b\x76\x61\x72\x20\x72\x3d\x2f\x5c\x2e\x28\x2e\x2a\x29\x24\x2f\x2c\x73\x3d\x2f\x5e\x28\x3f\x3a\x74\x65\x78\x74\x61\x72\x65\x61\x7c\x69\x6e\x70\x75\x74\x7c\x73\x65\x6c\x65\x63\x74\x29\x24\x2f\x69\x2c\x74\x3d\x2f\x5c\x2e\x2f\x67\x2c\x75\x3d\x2f\x20\x2f\x67\x2c\x76\x3d\x2f\x5b\x5e\x5c\x77\x5c\x73\x2e\x7c\x60\x5d\x2f\x67\x2c\x77\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x76\x2c\x22\x5c\x5c\x24\x26\x22\x29\x7d\x3b\x64\x2e\x65\x76\x65\x6e\x74\x3d\x7b\x61\x64\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x2c\x65\x2c\x66\x2c\x67\x29\x7b\x69\x66\x28\x63\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x33\x26\x26\x63\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x38\x29\x7b\x74\x72\x79\x7b\x64\x2e\x69\x73\x57\x69\x6e\x64\x6f\x77\x28\x63\x29\x26\x26\x28\x63\x21\x3d\x3d\x61\x26\x26\x21\x63\x2e\x66\x72\x61\x6d\x65\x45\x6c\x65\x6d\x65\x6e\x74\x29\x26\x26\x28\x63\x3d\x61\x29\x7d\x63\x61\x74\x63\x68\x28\x68\x29\x7b\x7d\x69\x66\x28\x66\x3d\x3d\x3d\x21\x31\x29\x66\x3d\x78\x3b\x65\x6c\x73\x65\x20\x69\x66\x28\x21\x66\x29\x72\x65\x74\x75\x72\x6e\x3b\x76\x61\x72\x20\x69\x2c\x6a\x3b\x66\x2e\x68\x61\x6e\x64\x6c\x65\x72\x26\x26\x28\x69\x3d\x66\x2c\x66\x3d\x69\x2e\x68\x61\x6e\x64\x6c\x65\x72\x29\x2c\x66\x2e\x67\x75\x69\x64\x7c\x7c\x28\x66\x2e\x67\x75\x69\x64\x3d\x64\x2e\x67\x75\x69\x64\x2b\x2b\x29\x3b\x76\x61\x72\x20\x6b\x3d\x64\x2e\x5f\x64\x61\x74\x61\x28\x63\x29\x3b\x69\x66\x28\x21\x6b\x29\x72\x65\x74\x75\x72\x6e\x3b\x76\x61\x72\x20\x6c\x3d\x6b\x2e\x65\x76\x65\x6e\x74\x73\x2c\x6d\x3d\x6b\x2e\x68\x61\x6e\x64\x6c\x65\x3b\x6c\x7c\x7c\x28\x6b\x2e\x65\x76\x65\x6e\x74\x73\x3d\x6c\x3d\x7b\x7d\x29\x2c\x6d\x7c\x7c\x28\x6b\x2e\x68\x61\x6e\x64\x6c\x65\x3d\x6d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x64\x21\x3d\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x26\x26\x64\x2e\x65\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x65\x64\x21\x3d\x3d\x61\x2e\x74\x79\x70\x65\x3f\x64\x2e\x65\x76\x65\x6e\x74\x2e\x68\x61\x6e\x64\x6c\x65\x2e\x61\x70\x70\x6c\x79\x28\x6d\x2e\x65\x6c\x65\x6d\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3a\x62\x7d\x29\x2c\x6d\x2e\x65\x6c\x65\x6d\x3d\x63\x2c\x65\x3d\x65\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x3b\x76\x61\x72\x20\x6e\x2c\x6f\x3d\x30\x2c\x70\x3b\x77\x68\x69\x6c\x65\x28\x6e\x3d\x65\x5b\x6f\x2b\x2b\x5d\x29\x7b\x6a\x3d\x69\x3f\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x69\x29\x3a\x7b\x68\x61\x6e\x64\x6c\x65\x72\x3a\x66\x2c\x64\x61\x74\x61\x3a\x67\x7d\x2c\x6e\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x2e\x22\x29\x3e\x2d\x31\x3f\x28\x70\x3d\x6e\x2e\x73\x70\x6c\x69\x74\x28\x22\x2e\x22\x29\x2c\x6e\x3d\x70\x2e\x73\x68\x69\x66\x74\x28\x29\x2c\x6a\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x3d\x70\x2e\x73\x6c\x69\x63\x65\x28\x30\x29\x2e\x73\x6f\x72\x74\x28\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x2e\x22\x29\x29\x3a\x28\x70\x3d\x5b\x5d\x2c\x6a\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x3d\x22\x22\x29\x2c\x6a\x2e\x74\x79\x70\x65\x3d\x6e\x2c\x6a\x2e\x67\x75\x69\x64\x7c\x7c\x28\x6a\x2e\x67\x75\x69\x64\x3d\x66\x2e\x67\x75\x69\x64\x29\x3b\x76\x61\x72\x20\x71\x3d\x6c\x5b\x6e\x5d\x2c\x72\x3d\x64\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\x6c\x5b\x6e\x5d\x7c\x7c\x7b\x7d\x3b\x69\x66\x28\x21\x71\x29\x7b\x71\x3d\x6c\x5b\x6e\x5d\x3d\x5b\x5d\x3b\x69\x66\x28\x21\x72\x2e\x73\x65\x74\x75\x70\x7c\x7c\x72\x2e\x73\x65\x74\x75\x70\x2e\x63\x61\x6c\x6c\x28\x63\x2c\x67\x2c\x70\x2c\x6d\x29\x3d\x3d\x3d\x21\x31\x29\x63\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x3f\x63\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x6e\x2c\x6d\x2c\x21\x31\x29\x3a\x63\x2e\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x26\x26\x63\x2e\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x28\x22\x6f\x6e\x22\x2b\x6e\x2c\x6d\x29\x7d\x72\x2e\x61\x64\x64\x26\x26\x28\x72\x2e\x61\x64\x64\x2e\x63\x61\x6c\x6c\x28\x63\x2c\x6a\x29\x2c\x6a\x2e\x68\x61\x6e\x64\x6c\x65\x72\x2e\x67\x75\x69\x64\x7c\x7c\x28\x6a\x2e\x68\x61\x6e\x64\x6c\x65\x72\x2e\x67\x75\x69\x64\x3d\x66\x2e\x67\x75\x69\x64\x29\x29\x2c\x71\x2e\x70\x75\x73\x68\x28\x6a\x29\x2c\x64\x2e\x65\x76\x65\x6e\x74\x2e\x67\x6c\x6f\x62\x61\x6c\x5b\x6e\x5d\x3d\x21\x30\x7d\x63\x3d\x6e\x75\x6c\x6c\x7d\x7d\x2c\x67\x6c\x6f\x62\x61\x6c\x3a\x7b\x7d\x2c\x72\x65\x6d\x6f\x76\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x2c\x66\x29\x7b\x69\x66\x28\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x33\x26\x26\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x38\x29\x7b\x65\x3d\x3d\x3d\x21\x31\x26\x26\x28\x65\x3d\x78\x29\x3b\x76\x61\x72\x20\x67\x2c\x68\x2c\x69\x2c\x6a\x2c\x6b\x3d\x30\x2c\x6c\x2c\x6d\x2c\x6e\x2c\x6f\x2c\x70\x2c\x71\x2c\x72\x2c\x73\x3d\x64\x2e\x68\x61\x73\x44\x61\x74\x61\x28\x61\x29\x26\x26\x64\x2e\x5f\x64\x61\x74\x61\x28\x61\x29\x2c\x74\x3d\x73\x26\x26\x73\x2e\x65\x76\x65\x6e\x74\x73\x3b\x69\x66\x28\x21\x73\x7c\x7c\x21\x74\x29\x72\x65\x74\x75\x72\x6e\x3b\x63\x26\x26\x63\x2e\x74\x79\x70\x65\x26\x26\x28\x65\x3d\x63\x2e\x68\x61\x6e\x64\x6c\x65\x72\x2c\x63\x3d\x63\x2e\x74\x79\x70\x65\x29\x3b\x69\x66\x28\x21\x63\x7c\x7c\x74\x79\x70\x65\x6f\x66\x20\x63\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x63\x2e\x63\x68\x61\x72\x41\x74\x28\x30\x29\x3d\x3d\x3d\x22\x2e\x22\x29\x7b\x63\x3d\x63\x7c\x7c\x22\x22\x3b\x66\x6f\x72\x28\x68\x20\x69\x6e\x20\x74\x29\x64\x2e\x65\x76\x65\x6e\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x61\x2c\x68\x2b\x63\x29\x3b\x72\x65\x74\x75\x72\x6e\x7d\x63\x3d\x63\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x3b\x77\x68\x69\x6c\x65\x28\x68\x3d\x63\x5b\x6b\x2b\x2b\x5d\x29\x7b\x72\x3d\x68\x2c\x71\x3d\x6e\x75\x6c\x6c\x2c\x6c\x3d\x68\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x2e\x22\x29\x3c\x30\x2c\x6d\x3d\x5b\x5d\x2c\x6c\x7c\x7c\x28\x6d\x3d\x68\x2e\x73\x70\x6c\x69\x74\x28\x22\x2e\x22\x29\x2c\x68\x3d\x6d\x2e\x73\x68\x69\x66\x74\x28\x29\x2c\x6e\x3d\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x22\x28\x5e\x7c\x5c\x5c\x2e\x29\x22\x2b\x64\x2e\x6d\x61\x70\x28\x6d\x2e\x73\x6c\x69\x63\x65\x28\x30\x29\x2e\x73\x6f\x72\x74\x28\x29\x2c\x77\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x5c\x5c\x2e\x28\x3f\x3a\x2e\x2a\x5c\x5c\x2e\x29\x3f\x22\x29\x2b\x22\x28\x5c\x5c\x2e\x7c\x24\x29\x22\x29\x29\x2c\x70\x3d\x74\x5b\x68\x5d\x3b\x69\x66\x28\x21\x70\x29\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x69\x66\x28\x21\x65\x29\x7b\x66\x6f\x72\x28\x6a\x3d\x30\x3b\x6a\x3c\x70\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x6a\x2b\x2b\x29\x7b\x71\x3d\x70\x5b\x6a\x5d\x3b\x69\x66\x28\x6c\x7c\x7c\x6e\x2e\x74\x65\x73\x74\x28\x71\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x29\x29\x64\x2e\x65\x76\x65\x6e\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x61\x2c\x72\x2c\x71\x2e\x68\x61\x6e\x64\x6c\x65\x72\x2c\x6a\x29\x2c\x70\x2e\x73\x70\x6c\x69\x63\x65\x28\x6a\x2d\x2d\x2c\x31\x29\x7d\x63\x6f\x6e\x74\x69\x6e\x75\x65\x7d\x6f\x3d\x64\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\x6c\x5b\x68\x5d\x7c\x7c\x7b\x7d\x3b\x66\x6f\x72\x28\x6a\x3d\x66\x7c\x7c\x30\x3b\x6a\x3c\x70\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x6a\x2b\x2b\x29\x7b\x71\x3d\x70\x5b\x6a\x5d\x3b\x69\x66\x28\x65\x2e\x67\x75\x69\x64\x3d\x3d\x3d\x71\x2e\x67\x75\x69\x64\x29\x7b\x69\x66\x28\x6c\x7c\x7c\x6e\x2e\x74\x65\x73\x74\x28\x71\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x29\x29\x66\x3d\x3d\x6e\x75\x6c\x6c\x26\x26\x70\x2e\x73\x70\x6c\x69\x63\x65\x28\x6a\x2d\x2d\x2c\x31\x29\x2c\x6f\x2e\x72\x65\x6d\x6f\x76\x65\x26\x26\x6f\x2e\x72\x65\x6d\x6f\x76\x65\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x71\x29\x3b\x69\x66\x28\x66\x21\x3d\x6e\x75\x6c\x6c\x29\x62\x72\x65\x61\x6b\x7d\x7d\x69\x66\x28\x70\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x30\x7c\x7c\x66\x21\x3d\x6e\x75\x6c\x6c\x26\x26\x70\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x29\x28\x21\x6f\x2e\x74\x65\x61\x72\x64\x6f\x77\x6e\x7c\x7c\x6f\x2e\x74\x65\x61\x72\x64\x6f\x77\x6e\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x6d\x29\x3d\x3d\x3d\x21\x31\x29\x26\x26\x64\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x28\x61\x2c\x68\x2c\x73\x2e\x68\x61\x6e\x64\x6c\x65\x29\x2c\x67\x3d\x6e\x75\x6c\x6c\x2c\x64\x65\x6c\x65\x74\x65\x20\x74\x5b\x68\x5d\x7d\x69\x66\x28\x64\x2e\x69\x73\x45\x6d\x70\x74\x79\x4f\x62\x6a\x65\x63\x74\x28\x74\x29\x29\x7b\x76\x61\x72\x20\x75\x3d\x73\x2e\x68\x61\x6e\x64\x6c\x65\x3b\x75\x26\x26\x28\x75\x2e\x65\x6c\x65\x6d\x3d\x6e\x75\x6c\x6c\x29\x2c\x64\x65\x6c\x65\x74\x65\x20\x73\x2e\x65\x76\x65\x6e\x74\x73\x2c\x64\x65\x6c\x65\x74\x65\x20\x73\x2e\x68\x61\x6e\x64\x6c\x65\x2c\x64\x2e\x69\x73\x45\x6d\x70\x74\x79\x4f\x62\x6a\x65\x63\x74\x28\x73\x29\x26\x26\x64\x2e\x72\x65\x6d\x6f\x76\x65\x44\x61\x74\x61\x28\x61\x2c\x62\x2c\x21\x30\x29\x7d\x7d\x7d\x2c\x74\x72\x69\x67\x67\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x3d\x61\x2e\x74\x79\x70\x65\x7c\x7c\x61\x2c\x67\x3d\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x3b\x69\x66\x28\x21\x67\x29\x7b\x61\x3d\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x3f\x61\x5b\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x3f\x61\x3a\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x64\x2e\x45\x76\x65\x6e\x74\x28\x66\x29\x2c\x61\x29\x3a\x64\x2e\x45\x76\x65\x6e\x74\x28\x66\x29\x2c\x66\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x21\x22\x29\x3e\x3d\x30\x26\x26\x28\x61\x2e\x74\x79\x70\x65\x3d\x66\x3d\x66\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x2d\x31\x29\x2c\x61\x2e\x65\x78\x63\x6c\x75\x73\x69\x76\x65\x3d\x21\x30\x29\x2c\x65\x7c\x7c\x28\x61\x2e\x73\x74\x6f\x70\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x28\x29\x2c\x64\x2e\x65\x76\x65\x6e\x74\x2e\x67\x6c\x6f\x62\x61\x6c\x5b\x66\x5d\x26\x26\x64\x2e\x65\x61\x63\x68\x28\x64\x2e\x63\x61\x63\x68\x65\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x62\x3d\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x2c\x65\x3d\x74\x68\x69\x73\x5b\x62\x5d\x3b\x65\x26\x26\x65\x2e\x65\x76\x65\x6e\x74\x73\x26\x26\x65\x2e\x65\x76\x65\x6e\x74\x73\x5b\x66\x5d\x26\x26\x64\x2e\x65\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x61\x2c\x63\x2c\x65\x2e\x68\x61\x6e\x64\x6c\x65\x2e\x65\x6c\x65\x6d\x29\x7d\x29\x29\x3b\x69\x66\x28\x21\x65\x7c\x7c\x65\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x33\x7c\x7c\x65\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x38\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x3b\x61\x2e\x72\x65\x73\x75\x6c\x74\x3d\x62\x2c\x61\x2e\x74\x61\x72\x67\x65\x74\x3d\x65\x2c\x63\x3d\x64\x2e\x6d\x61\x6b\x65\x41\x72\x72\x61\x79\x28\x63\x29\x2c\x63\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x61\x29\x7d\x61\x2e\x63\x75\x72\x72\x65\x6e\x74\x54\x61\x72\x67\x65\x74\x3d\x65\x3b\x76\x61\x72\x20\x68\x3d\x64\x2e\x5f\x64\x61\x74\x61\x28\x65\x2c\x22\x68\x61\x6e\x64\x6c\x65\x22\x29\x3b\x68\x26\x26\x68\x2e\x61\x70\x70\x6c\x79\x28\x65\x2c\x63\x29\x3b\x76\x61\x72\x20\x69\x3d\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x7c\x7c\x65\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x3b\x74\x72\x79\x7b\x65\x26\x26\x65\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x26\x26\x64\x2e\x6e\x6f\x44\x61\x74\x61\x5b\x65\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x7c\x7c\x65\x5b\x22\x6f\x6e\x22\x2b\x66\x5d\x26\x26\x65\x5b\x22\x6f\x6e\x22\x2b\x66\x5d\x2e\x61\x70\x70\x6c\x79\x28\x65\x2c\x63\x29\x3d\x3d\x3d\x21\x31\x26\x26\x28\x61\x2e\x72\x65\x73\x75\x6c\x74\x3d\x21\x31\x2c\x61\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x29\x7d\x63\x61\x74\x63\x68\x28\x6a\x29\x7b\x7d\x69\x66\x28\x21\x61\x2e\x69\x73\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x53\x74\x6f\x70\x70\x65\x64\x28\x29\x26\x26\x69\x29\x64\x2e\x65\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x61\x2c\x63\x2c\x69\x2c\x21\x30\x29\x3b\x65\x6c\x73\x65\x20\x69\x66\x28\x21\x61\x2e\x69\x73\x44\x65\x66\x61\x75\x6c\x74\x50\x72\x65\x76\x65\x6e\x74\x65\x64\x28\x29\x29\x7b\x76\x61\x72\x20\x6b\x2c\x6c\x3d\x61\x2e\x74\x61\x72\x67\x65\x74\x2c\x6d\x3d\x66\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x72\x2c\x22\x22\x29\x2c\x6e\x3d\x64\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x6c\x2c\x22\x61\x22\x29\x26\x26\x6d\x3d\x3d\x3d\x22\x63\x6c\x69\x63\x6b\x22\x2c\x6f\x3d\x64\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\x6c\x5b\x6d\x5d\x7c\x7c\x7b\x7d\x3b\x69\x66\x28\x28\x21\x6f\x2e\x5f\x64\x65\x66\x61\x75\x6c\x74\x7c\x7c\x6f\x2e\x5f\x64\x65\x66\x61\x75\x6c\x74\x2e\x63\x61\x6c\x6c\x28\x65\x2c\x61\x29\x3d\x3d\x3d\x21\x31\x29\x26\x26\x21\x6e\x26\x26\x21\x28\x6c\x26\x26\x6c\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x26\x26\x64\x2e\x6e\x6f\x44\x61\x74\x61\x5b\x6c\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x29\x29\x7b\x74\x72\x79\x7b\x6c\x5b\x6d\x5d\x26\x26\x28\x6b\x3d\x6c\x5b\x22\x6f\x6e\x22\x2b\x6d\x5d\x2c\x6b\x26\x26\x28\x6c\x5b\x22\x6f\x6e\x22\x2b\x6d\x5d\x3d\x6e\x75\x6c\x6c\x29\x2c\x64\x2e\x65\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x65\x64\x3d\x61\x2e\x74\x79\x70\x65\x2c\x6c\x5b\x6d\x5d\x28\x29\x29\x7d\x63\x61\x74\x63\x68\x28\x70\x29\x7b\x7d\x6b\x26\x26\x28\x6c\x5b\x22\x6f\x6e\x22\x2b\x6d\x5d\x3d\x6b\x29\x2c\x64\x2e\x65\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x65\x64\x3d\x62\x7d\x7d\x7d\x2c\x68\x61\x6e\x64\x6c\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x29\x7b\x76\x61\x72\x20\x65\x2c\x66\x2c\x67\x2c\x68\x2c\x69\x2c\x6a\x3d\x5b\x5d\x2c\x6b\x3d\x64\x2e\x6d\x61\x6b\x65\x41\x72\x72\x61\x79\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x63\x3d\x6b\x5b\x30\x5d\x3d\x64\x2e\x65\x76\x65\x6e\x74\x2e\x66\x69\x78\x28\x63\x7c\x7c\x61\x2e\x65\x76\x65\x6e\x74\x29\x2c\x63\x2e\x63\x75\x72\x72\x65\x6e\x74\x54\x61\x72\x67\x65\x74\x3d\x74\x68\x69\x73\x2c\x65\x3d\x63\x2e\x74\x79\x70\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x2e\x22\x29\x3c\x30\x26\x26\x21\x63\x2e\x65\x78\x63\x6c\x75\x73\x69\x76\x65\x2c\x65\x7c\x7c\x28\x67\x3d\x63\x2e\x74\x79\x70\x65\x2e\x73\x70\x6c\x69\x74\x28\x22\x2e\x22\x29\x2c\x63\x2e\x74\x79\x70\x65\x3d\x67\x2e\x73\x68\x69\x66\x74\x28\x29\x2c\x6a\x3d\x67\x2e\x73\x6c\x69\x63\x65\x28\x30\x29\x2e\x73\x6f\x72\x74\x28\x29\x2c\x68\x3d\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x22\x28\x5e\x7c\x5c\x5c\x2e\x29\x22\x2b\x6a\x2e\x6a\x6f\x69\x6e\x28\x22\x5c\x5c\x2e\x28\x3f\x3a\x2e\x2a\x5c\x5c\x2e\x29\x3f\x22\x29\x2b\x22\x28\x5c\x5c\x2e\x7c\x24\x29\x22\x29\x29\x2c\x63\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x3d\x63\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x7c\x7c\x6a\x2e\x6a\x6f\x69\x6e\x28\x22\x2e\x22\x29\x2c\x69\x3d\x64\x2e\x5f\x64\x61\x74\x61\x28\x74\x68\x69\x73\x2c\x22\x65\x76\x65\x6e\x74\x73\x22\x29\x2c\x66\x3d\x28\x69\x7c\x7c\x7b\x7d\x29\x5b\x63\x2e\x74\x79\x70\x65\x5d\x3b\x69\x66\x28\x69\x26\x26\x66\x29\x7b\x66\x3d\x66\x2e\x73\x6c\x69\x63\x65\x28\x30\x29\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x6c\x3d\x30\x2c\x6d\x3d\x66\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x6c\x3c\x6d\x3b\x6c\x2b\x2b\x29\x7b\x76\x61\x72\x20\x6e\x3d\x66\x5b\x6c\x5d\x3b\x69\x66\x28\x65\x7c\x7c\x68\x2e\x74\x65\x73\x74\x28\x6e\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x29\x29\x7b\x63\x2e\x68\x61\x6e\x64\x6c\x65\x72\x3d\x6e\x2e\x68\x61\x6e\x64\x6c\x65\x72\x2c\x63\x2e\x64\x61\x74\x61\x3d\x6e\x2e\x64\x61\x74\x61\x2c\x63\x2e\x68\x61\x6e\x64\x6c\x65\x4f\x62\x6a\x3d\x6e\x3b\x76\x61\x72\x20\x6f\x3d\x6e\x2e\x68\x61\x6e\x64\x6c\x65\x72\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x6b\x29\x3b\x6f\x21\x3d\x3d\x62\x26\x26\x28\x63\x2e\x72\x65\x73\x75\x6c\x74\x3d\x6f\x2c\x6f\x3d\x3d\x3d\x21\x31\x26\x26\x28\x63\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x2c\x63\x2e\x73\x74\x6f\x70\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x28\x29\x29\x29\x3b\x69\x66\x28\x63\x2e\x69\x73\x49\x6d\x6d\x65\x64\x69\x61\x74\x65\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x53\x74\x6f\x70\x70\x65\x64\x28\x29\x29\x62\x72\x65\x61\x6b\x7d\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x63\x2e\x72\x65\x73\x75\x6c\x74\x7d\x2c\x70\x72\x6f\x70\x73\x3a\x22\x61\x6c\x74\x4b\x65\x79\x20\x61\x74\x74\x72\x43\x68\x61\x6e\x67\x65\x20\x61\x74\x74\x72\x4e\x61\x6d\x65\x20\x62\x75\x62\x62\x6c\x65\x73\x20\x62\x75\x74\x74\x6f\x6e\x20\x63\x61\x6e\x63\x65\x6c\x61\x62\x6c\x65\x20\x63\x68\x61\x72\x43\x6f\x64\x65\x20\x63\x6c\x69\x65\x6e\x74\x58\x20\x63\x6c\x69\x65\x6e\x74\x59\x20\x63\x74\x72\x6c\x4b\x65\x79\x20\x63\x75\x72\x72\x65\x6e\x74\x54\x61\x72\x67\x65\x74\x20\x64\x61\x74\x61\x20\x64\x65\x74\x61\x69\x6c\x20\x65\x76\x65\x6e\x74\x50\x68\x61\x73\x65\x20\x66\x72\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x20\x68\x61\x6e\x64\x6c\x65\x72\x20\x6b\x65\x79\x43\x6f\x64\x65\x20\x6c\x61\x79\x65\x72\x58\x20\x6c\x61\x79\x65\x72\x59\x20\x6d\x65\x74\x61\x4b\x65\x79\x20\x6e\x65\x77\x56\x61\x6c\x75\x65\x20\x6f\x66\x66\x73\x65\x74\x58\x20\x6f\x66\x66\x73\x65\x74\x59\x20\x70\x61\x67\x65\x58\x20\x70\x61\x67\x65\x59\x20\x70\x72\x65\x76\x56\x61\x6c\x75\x65\x20\x72\x65\x6c\x61\x74\x65\x64\x4e\x6f\x64\x65\x20\x72\x65\x6c\x61\x74\x65\x64\x54\x61\x72\x67\x65\x74\x20\x73\x63\x72\x65\x65\x6e\x58\x20\x73\x63\x72\x65\x65\x6e\x59\x20\x73\x68\x69\x66\x74\x4b\x65\x79\x20\x73\x72\x63\x45\x6c\x65\x6d\x65\x6e\x74\x20\x74\x61\x72\x67\x65\x74\x20\x74\x6f\x45\x6c\x65\x6d\x65\x6e\x74\x20\x76\x69\x65\x77\x20\x77\x68\x65\x65\x6c\x44\x65\x6c\x74\x61\x20\x77\x68\x69\x63\x68\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x2c\x66\x69\x78\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x61\x5b\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x29\x72\x65\x74\x75\x72\x6e\x20\x61\x3b\x76\x61\x72\x20\x65\x3d\x61\x3b\x61\x3d\x64\x2e\x45\x76\x65\x6e\x74\x28\x65\x29\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x66\x3d\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x67\x3b\x66\x3b\x29\x67\x3d\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x73\x5b\x2d\x2d\x66\x5d\x2c\x61\x5b\x67\x5d\x3d\x65\x5b\x67\x5d\x3b\x61\x2e\x74\x61\x72\x67\x65\x74\x7c\x7c\x28\x61\x2e\x74\x61\x72\x67\x65\x74\x3d\x61\x2e\x73\x72\x63\x45\x6c\x65\x6d\x65\x6e\x74\x7c\x7c\x63\x29\x2c\x61\x2e\x74\x61\x72\x67\x65\x74\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x33\x26\x26\x28\x61\x2e\x74\x61\x72\x67\x65\x74\x3d\x61\x2e\x74\x61\x72\x67\x65\x74\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x2c\x21\x61\x2e\x72\x65\x6c\x61\x74\x65\x64\x54\x61\x72\x67\x65\x74\x26\x26\x61\x2e\x66\x72\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x26\x26\x28\x61\x2e\x72\x65\x6c\x61\x74\x65\x64\x54\x61\x72\x67\x65\x74\x3d\x61\x2e\x66\x72\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x3d\x3d\x3d\x61\x2e\x74\x61\x72\x67\x65\x74\x3f\x61\x2e\x74\x6f\x45\x6c\x65\x6d\x65\x6e\x74\x3a\x61\x2e\x66\x72\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x29\x3b\x69\x66\x28\x61\x2e\x70\x61\x67\x65\x58\x3d\x3d\x6e\x75\x6c\x6c\x26\x26\x61\x2e\x63\x6c\x69\x65\x6e\x74\x58\x21\x3d\x6e\x75\x6c\x6c\x29\x7b\x76\x61\x72\x20\x68\x3d\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x69\x3d\x63\x2e\x62\x6f\x64\x79\x3b\x61\x2e\x70\x61\x67\x65\x58\x3d\x61\x2e\x63\x6c\x69\x65\x6e\x74\x58\x2b\x28\x68\x26\x26\x68\x2e\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74\x7c\x7c\x69\x26\x26\x69\x2e\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74\x7c\x7c\x30\x29\x2d\x28\x68\x26\x26\x68\x2e\x63\x6c\x69\x65\x6e\x74\x4c\x65\x66\x74\x7c\x7c\x69\x26\x26\x69\x2e\x63\x6c\x69\x65\x6e\x74\x4c\x65\x66\x74\x7c\x7c\x30\x29\x2c\x61\x2e\x70\x61\x67\x65\x59\x3d\x61\x2e\x63\x6c\x69\x65\x6e\x74\x59\x2b\x28\x68\x26\x26\x68\x2e\x73\x63\x72\x6f\x6c\x6c\x54\x6f\x70\x7c\x7c\x69\x26\x26\x69\x2e\x73\x63\x72\x6f\x6c\x6c\x54\x6f\x70\x7c\x7c\x30\x29\x2d\x28\x68\x26\x26\x68\x2e\x63\x6c\x69\x65\x6e\x74\x54\x6f\x70\x7c\x7c\x69\x26\x26\x69\x2e\x63\x6c\x69\x65\x6e\x74\x54\x6f\x70\x7c\x7c\x30\x29\x7d\x61\x2e\x77\x68\x69\x63\x68\x3d\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x61\x2e\x63\x68\x61\x72\x43\x6f\x64\x65\x21\x3d\x6e\x75\x6c\x6c\x7c\x7c\x61\x2e\x6b\x65\x79\x43\x6f\x64\x65\x21\x3d\x6e\x75\x6c\x6c\x29\x26\x26\x28\x61\x2e\x77\x68\x69\x63\x68\x3d\x61\x2e\x63\x68\x61\x72\x43\x6f\x64\x65\x21\x3d\x6e\x75\x6c\x6c\x3f\x61\x2e\x63\x68\x61\x72\x43\x6f\x64\x65\x3a\x61\x2e\x6b\x65\x79\x43\x6f\x64\x65\x29\x2c\x21\x61\x2e\x6d\x65\x74\x61\x4b\x65\x79\x26\x26\x61\x2e\x63\x74\x72\x6c\x4b\x65\x79\x26\x26\x28\x61\x2e\x6d\x65\x74\x61\x4b\x65\x79\x3d\x61\x2e\x63\x74\x72\x6c\x4b\x65\x79\x29\x2c\x21\x61\x2e\x77\x68\x69\x63\x68\x26\x26\x61\x2e\x62\x75\x74\x74\x6f\x6e\x21\x3d\x3d\x62\x26\x26\x28\x61\x2e\x77\x68\x69\x63\x68\x3d\x61\x2e\x62\x75\x74\x74\x6f\x6e\x26\x31\x3f\x31\x3a\x61\x2e\x62\x75\x74\x74\x6f\x6e\x26\x32\x3f\x33\x3a\x61\x2e\x62\x75\x74\x74\x6f\x6e\x26\x34\x3f\x32\x3a\x30\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x2c\x67\x75\x69\x64\x3a\x31\x65\x38\x2c\x70\x72\x6f\x78\x79\x3a\x64\x2e\x70\x72\x6f\x78\x79\x2c\x73\x70\x65\x63\x69\x61\x6c\x3a\x7b\x72\x65\x61\x64\x79\x3a\x7b\x73\x65\x74\x75\x70\x3a\x64\x2e\x62\x69\x6e\x64\x52\x65\x61\x64\x79\x2c\x74\x65\x61\x72\x64\x6f\x77\x6e\x3a\x64\x2e\x6e\x6f\x6f\x70\x7d\x2c\x6c\x69\x76\x65\x3a\x7b\x61\x64\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x64\x2e\x65\x76\x65\x6e\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2c\x48\x28\x61\x2e\x6f\x72\x69\x67\x54\x79\x70\x65\x2c\x61\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x29\x2c\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x61\x2c\x7b\x68\x61\x6e\x64\x6c\x65\x72\x3a\x47\x2c\x67\x75\x69\x64\x3a\x61\x2e\x68\x61\x6e\x64\x6c\x65\x72\x2e\x67\x75\x69\x64\x7d\x29\x29\x7d\x2c\x72\x65\x6d\x6f\x76\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x64\x2e\x65\x76\x65\x6e\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2c\x48\x28\x61\x2e\x6f\x72\x69\x67\x54\x79\x70\x65\x2c\x61\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x29\x2c\x61\x29\x7d\x7d\x2c\x62\x65\x66\x6f\x72\x65\x75\x6e\x6c\x6f\x61\x64\x3a\x7b\x73\x65\x74\x75\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x64\x2e\x69\x73\x57\x69\x6e\x64\x6f\x77\x28\x74\x68\x69\x73\x29\x26\x26\x28\x74\x68\x69\x73\x2e\x6f\x6e\x62\x65\x66\x6f\x72\x65\x75\x6e\x6c\x6f\x61\x64\x3d\x63\x29\x7d\x2c\x74\x65\x61\x72\x64\x6f\x77\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x74\x68\x69\x73\x2e\x6f\x6e\x62\x65\x66\x6f\x72\x65\x75\x6e\x6c\x6f\x61\x64\x3d\x3d\x3d\x62\x26\x26\x28\x74\x68\x69\x73\x2e\x6f\x6e\x62\x65\x66\x6f\x72\x65\x75\x6e\x6c\x6f\x61\x64\x3d\x6e\x75\x6c\x6c\x29\x7d\x7d\x7d\x7d\x2c\x64\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x3d\x63\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x3f\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x61\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x26\x26\x61\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x62\x2c\x63\x2c\x21\x31\x29\x7d\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x61\x2e\x64\x65\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x26\x26\x61\x2e\x64\x65\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x28\x22\x6f\x6e\x22\x2b\x62\x2c\x63\x29\x7d\x2c\x64\x2e\x45\x76\x65\x6e\x74\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x21\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x29\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x64\x2e\x45\x76\x65\x6e\x74\x28\x61\x29\x3b\x61\x26\x26\x61\x2e\x74\x79\x70\x65\x3f\x28\x74\x68\x69\x73\x2e\x6f\x72\x69\x67\x69\x6e\x61\x6c\x45\x76\x65\x6e\x74\x3d\x61\x2c\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x3d\x61\x2e\x74\x79\x70\x65\x2c\x74\x68\x69\x73\x2e\x69\x73\x44\x65\x66\x61\x75\x6c\x74\x50\x72\x65\x76\x65\x6e\x74\x65\x64\x3d\x61\x2e\x64\x65\x66\x61\x75\x6c\x74\x50\x72\x65\x76\x65\x6e\x74\x65\x64\x7c\x7c\x61\x2e\x72\x65\x74\x75\x72\x6e\x56\x61\x6c\x75\x65\x3d\x3d\x3d\x21\x31\x7c\x7c\x61\x2e\x67\x65\x74\x50\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x26\x26\x61\x2e\x67\x65\x74\x50\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x3f\x79\x3a\x78\x29\x3a\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x3d\x61\x2c\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x74\x61\x6d\x70\x3d\x64\x2e\x6e\x6f\x77\x28\x29\x2c\x74\x68\x69\x73\x5b\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x3d\x21\x30\x7d\x2c\x64\x2e\x45\x76\x65\x6e\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x3d\x7b\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x74\x68\x69\x73\x2e\x69\x73\x44\x65\x66\x61\x75\x6c\x74\x50\x72\x65\x76\x65\x6e\x74\x65\x64\x3d\x79\x3b\x76\x61\x72\x20\x61\x3d\x74\x68\x69\x73\x2e\x6f\x72\x69\x67\x69\x6e\x61\x6c\x45\x76\x65\x6e\x74\x3b\x61\x26\x26\x28\x61\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x3f\x61\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x3a\x61\x2e\x72\x65\x74\x75\x72\x6e\x56\x61\x6c\x75\x65\x3d\x21\x31\x29\x7d\x2c\x73\x74\x6f\x70\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x74\x68\x69\x73\x2e\x69\x73\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x53\x74\x6f\x70\x70\x65\x64\x3d\x79\x3b\x76\x61\x72\x20\x61\x3d\x74\x68\x69\x73\x2e\x6f\x72\x69\x67\x69\x6e\x61\x6c\x45\x76\x65\x6e\x74\x3b\x61\x26\x26\x28\x61\x2e\x73\x74\x6f\x70\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x26\x26\x61\x2e\x73\x74\x6f\x70\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x28\x29\x2c\x61\x2e\x63\x61\x6e\x63\x65\x6c\x42\x75\x62\x62\x6c\x65\x3d\x21\x30\x29\x7d\x2c\x73\x74\x6f\x70\x49\x6d\x6d\x65\x64\x69\x61\x74\x65\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x74\x68\x69\x73\x2e\x69\x73\x49\x6d\x6d\x65\x64\x69\x61\x74\x65\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x53\x74\x6f\x70\x70\x65\x64\x3d\x79\x2c\x74\x68\x69\x73\x2e\x73\x74\x6f\x70\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x28\x29\x7d\x2c\x69\x73\x44\x65\x66\x61\x75\x6c\x74\x50\x72\x65\x76\x65\x6e\x74\x65\x64\x3a\x78\x2c\x69\x73\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x53\x74\x6f\x70\x70\x65\x64\x3a\x78\x2c\x69\x73\x49\x6d\x6d\x65\x64\x69\x61\x74\x65\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x53\x74\x6f\x70\x70\x65\x64\x3a\x78\x7d\x3b\x76\x61\x72\x20\x7a\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x72\x65\x6c\x61\x74\x65\x64\x54\x61\x72\x67\x65\x74\x3b\x74\x72\x79\x7b\x69\x66\x28\x62\x26\x26\x62\x21\x3d\x3d\x63\x26\x26\x21\x62\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x72\x65\x74\x75\x72\x6e\x3b\x77\x68\x69\x6c\x65\x28\x62\x26\x26\x62\x21\x3d\x3d\x74\x68\x69\x73\x29\x62\x3d\x62\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x62\x21\x3d\x3d\x74\x68\x69\x73\x26\x26\x28\x61\x2e\x74\x79\x70\x65\x3d\x61\x2e\x64\x61\x74\x61\x2c\x64\x2e\x65\x76\x65\x6e\x74\x2e\x68\x61\x6e\x64\x6c\x65\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x29\x7d\x63\x61\x74\x63\x68\x28\x65\x29\x7b\x7d\x7d\x2c\x41\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x61\x2e\x74\x79\x70\x65\x3d\x61\x2e\x64\x61\x74\x61\x2c\x64\x2e\x65\x76\x65\x6e\x74\x2e\x68\x61\x6e\x64\x6c\x65\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x7d\x3b\x64\x2e\x65\x61\x63\x68\x28\x7b\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x3a\x22\x6d\x6f\x75\x73\x65\x6f\x76\x65\x72\x22\x2c\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x3a\x22\x6d\x6f\x75\x73\x65\x6f\x75\x74\x22\x7d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x64\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\x6c\x5b\x61\x5d\x3d\x7b\x73\x65\x74\x75\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x29\x7b\x64\x2e\x65\x76\x65\x6e\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2c\x62\x2c\x63\x26\x26\x63\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x3f\x41\x3a\x7a\x2c\x61\x29\x7d\x2c\x74\x65\x61\x72\x64\x6f\x77\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x64\x2e\x65\x76\x65\x6e\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2c\x62\x2c\x61\x26\x26\x61\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x3f\x41\x3a\x7a\x29\x7d\x7d\x7d\x29\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x73\x75\x62\x6d\x69\x74\x42\x75\x62\x62\x6c\x65\x73\x7c\x7c\x28\x64\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\x6c\x2e\x73\x75\x62\x6d\x69\x74\x3d\x7b\x73\x65\x74\x75\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x26\x26\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x21\x3d\x3d\x22\x66\x6f\x72\x6d\x22\x29\x64\x2e\x65\x76\x65\x6e\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2c\x22\x63\x6c\x69\x63\x6b\x2e\x73\x70\x65\x63\x69\x61\x6c\x53\x75\x62\x6d\x69\x74\x22\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x74\x61\x72\x67\x65\x74\x2c\x63\x3d\x62\x2e\x74\x79\x70\x65\x3b\x28\x63\x3d\x3d\x3d\x22\x73\x75\x62\x6d\x69\x74\x22\x7c\x7c\x63\x3d\x3d\x3d\x22\x69\x6d\x61\x67\x65\x22\x29\x26\x26\x64\x28\x62\x29\x2e\x63\x6c\x6f\x73\x65\x73\x74\x28\x22\x66\x6f\x72\x6d\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x26\x26\x45\x28\x22\x73\x75\x62\x6d\x69\x74\x22\x2c\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x7d\x29\x2c\x64\x2e\x65\x76\x65\x6e\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2c\x22\x6b\x65\x79\x70\x72\x65\x73\x73\x2e\x73\x70\x65\x63\x69\x61\x6c\x53\x75\x62\x6d\x69\x74\x22\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x74\x61\x72\x67\x65\x74\x2c\x63\x3d\x62\x2e\x74\x79\x70\x65\x3b\x28\x63\x3d\x3d\x3d\x22\x74\x65\x78\x74\x22\x7c\x7c\x63\x3d\x3d\x3d\x22\x70\x61\x73\x73\x77\x6f\x72\x64\x22\x29\x26\x26\x64\x28\x62\x29\x2e\x63\x6c\x6f\x73\x65\x73\x74\x28\x22\x66\x6f\x72\x6d\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x26\x26\x61\x2e\x6b\x65\x79\x43\x6f\x64\x65\x3d\x3d\x3d\x31\x33\x26\x26\x45\x28\x22\x73\x75\x62\x6d\x69\x74\x22\x2c\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x7d\x29\x3b\x65\x6c\x73\x65\x20\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\x2c\x74\x65\x61\x72\x64\x6f\x77\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x64\x2e\x65\x76\x65\x6e\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2c\x22\x2e\x73\x70\x65\x63\x69\x61\x6c\x53\x75\x62\x6d\x69\x74\x22\x29\x7d\x7d\x29\x3b\x69\x66\x28\x21\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x63\x68\x61\x6e\x67\x65\x42\x75\x62\x62\x6c\x65\x73\x29\x7b\x76\x61\x72\x20\x42\x2c\x43\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x74\x79\x70\x65\x2c\x63\x3d\x61\x2e\x76\x61\x6c\x75\x65\x3b\x62\x3d\x3d\x3d\x22\x72\x61\x64\x69\x6f\x22\x7c\x7c\x62\x3d\x3d\x3d\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x22\x3f\x63\x3d\x61\x2e\x63\x68\x65\x63\x6b\x65\x64\x3a\x62\x3d\x3d\x3d\x22\x73\x65\x6c\x65\x63\x74\x2d\x6d\x75\x6c\x74\x69\x70\x6c\x65\x22\x3f\x63\x3d\x61\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\x65\x78\x3e\x2d\x31\x3f\x64\x2e\x6d\x61\x70\x28\x61\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x7d\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x2d\x22\x29\x3a\x22\x22\x3a\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x22\x73\x65\x6c\x65\x63\x74\x22\x26\x26\x28\x63\x3d\x61\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\x65\x78\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x2c\x44\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x44\x28\x61\x29\x7b\x76\x61\x72\x20\x63\x3d\x61\x2e\x74\x61\x72\x67\x65\x74\x2c\x65\x2c\x66\x3b\x69\x66\x28\x73\x2e\x74\x65\x73\x74\x28\x63\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x26\x26\x21\x63\x2e\x72\x65\x61\x64\x4f\x6e\x6c\x79\x29\x7b\x65\x3d\x64\x2e\x5f\x64\x61\x74\x61\x28\x63\x2c\x22\x5f\x63\x68\x61\x6e\x67\x65\x5f\x64\x61\x74\x61\x22\x29\x2c\x66\x3d\x43\x28\x63\x29\x2c\x28\x61\x2e\x74\x79\x70\x65\x21\x3d\x3d\x22\x66\x6f\x63\x75\x73\x6f\x75\x74\x22\x7c\x7c\x63\x2e\x74\x79\x70\x65\x21\x3d\x3d\x22\x72\x61\x64\x69\x6f\x22\x29\x26\x26\x64\x2e\x5f\x64\x61\x74\x61\x28\x63\x2c\x22\x5f\x63\x68\x61\x6e\x67\x65\x5f\x64\x61\x74\x61\x22\x2c\x66\x29\x3b\x69\x66\x28\x65\x3d\x3d\x3d\x62\x7c\x7c\x66\x3d\x3d\x3d\x65\x29\x72\x65\x74\x75\x72\x6e\x3b\x69\x66\x28\x65\x21\x3d\x6e\x75\x6c\x6c\x7c\x7c\x66\x29\x61\x2e\x74\x79\x70\x65\x3d\x22\x63\x68\x61\x6e\x67\x65\x22\x2c\x61\x2e\x6c\x69\x76\x65\x46\x69\x72\x65\x64\x3d\x62\x2c\x64\x2e\x65\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x61\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x2c\x63\x29\x7d\x7d\x3b\x64\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\x6c\x2e\x63\x68\x61\x6e\x67\x65\x3d\x7b\x66\x69\x6c\x74\x65\x72\x73\x3a\x7b\x66\x6f\x63\x75\x73\x6f\x75\x74\x3a\x44\x2c\x62\x65\x66\x6f\x72\x65\x64\x65\x61\x63\x74\x69\x76\x61\x74\x65\x3a\x44\x2c\x63\x6c\x69\x63\x6b\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x74\x61\x72\x67\x65\x74\x2c\x63\x3d\x62\x2e\x74\x79\x70\x65\x3b\x28\x63\x3d\x3d\x3d\x22\x72\x61\x64\x69\x6f\x22\x7c\x7c\x63\x3d\x3d\x3d\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x22\x7c\x7c\x62\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x22\x73\x65\x6c\x65\x63\x74\x22\x29\x26\x26\x44\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x61\x29\x7d\x2c\x6b\x65\x79\x64\x6f\x77\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x74\x61\x72\x67\x65\x74\x2c\x63\x3d\x62\x2e\x74\x79\x70\x65\x3b\x28\x61\x2e\x6b\x65\x79\x43\x6f\x64\x65\x3d\x3d\x3d\x31\x33\x26\x26\x62\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x21\x3d\x3d\x22\x74\x65\x78\x74\x61\x72\x65\x61\x22\x7c\x7c\x61\x2e\x6b\x65\x79\x43\x6f\x64\x65\x3d\x3d\x3d\x33\x32\x26\x26\x28\x63\x3d\x3d\x3d\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x22\x7c\x7c\x63\x3d\x3d\x3d\x22\x72\x61\x64\x69\x6f\x22\x29\x7c\x7c\x63\x3d\x3d\x3d\x22\x73\x65\x6c\x65\x63\x74\x2d\x6d\x75\x6c\x74\x69\x70\x6c\x65\x22\x29\x26\x26\x44\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x61\x29\x7d\x2c\x62\x65\x66\x6f\x72\x65\x61\x63\x74\x69\x76\x61\x74\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x74\x61\x72\x67\x65\x74\x3b\x64\x2e\x5f\x64\x61\x74\x61\x28\x62\x2c\x22\x5f\x63\x68\x61\x6e\x67\x65\x5f\x64\x61\x74\x61\x22\x2c\x43\x28\x62\x29\x29\x7d\x7d\x2c\x73\x65\x74\x75\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x3d\x3d\x3d\x22\x66\x69\x6c\x65\x22\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x63\x20\x69\x6e\x20\x42\x29\x64\x2e\x65\x76\x65\x6e\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2c\x63\x2b\x22\x2e\x73\x70\x65\x63\x69\x61\x6c\x43\x68\x61\x6e\x67\x65\x22\x2c\x42\x5b\x63\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x73\x2e\x74\x65\x73\x74\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x7d\x2c\x74\x65\x61\x72\x64\x6f\x77\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x64\x2e\x65\x76\x65\x6e\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2c\x22\x2e\x73\x70\x65\x63\x69\x61\x6c\x43\x68\x61\x6e\x67\x65\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x73\x2e\x74\x65\x73\x74\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x7d\x7d\x2c\x42\x3d\x64\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\x6c\x2e\x63\x68\x61\x6e\x67\x65\x2e\x66\x69\x6c\x74\x65\x72\x73\x2c\x42\x2e\x66\x6f\x63\x75\x73\x3d\x42\x2e\x62\x65\x66\x6f\x72\x65\x61\x63\x74\x69\x76\x61\x74\x65\x7d\x63\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x26\x26\x64\x2e\x65\x61\x63\x68\x28\x7b\x66\x6f\x63\x75\x73\x3a\x22\x66\x6f\x63\x75\x73\x69\x6e\x22\x2c\x62\x6c\x75\x72\x3a\x22\x66\x6f\x63\x75\x73\x6f\x75\x74\x22\x7d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x28\x61\x29\x7b\x76\x61\x72\x20\x63\x3d\x64\x2e\x65\x76\x65\x6e\x74\x2e\x66\x69\x78\x28\x61\x29\x3b\x63\x2e\x74\x79\x70\x65\x3d\x62\x2c\x63\x2e\x6f\x72\x69\x67\x69\x6e\x61\x6c\x45\x76\x65\x6e\x74\x3d\x7b\x7d\x2c\x64\x2e\x65\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x63\x2c\x6e\x75\x6c\x6c\x2c\x63\x2e\x74\x61\x72\x67\x65\x74\x29\x2c\x63\x2e\x69\x73\x44\x65\x66\x61\x75\x6c\x74\x50\x72\x65\x76\x65\x6e\x74\x65\x64\x28\x29\x26\x26\x61\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x7d\x76\x61\x72\x20\x65\x3d\x30\x3b\x64\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\x6c\x5b\x62\x5d\x3d\x7b\x73\x65\x74\x75\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x65\x2b\x2b\x3d\x3d\x3d\x30\x26\x26\x63\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x61\x2c\x66\x2c\x21\x30\x29\x7d\x2c\x74\x65\x61\x72\x64\x6f\x77\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x2d\x2d\x65\x3d\x3d\x3d\x30\x26\x26\x63\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x61\x2c\x66\x2c\x21\x30\x29\x7d\x7d\x7d\x29\x2c\x64\x2e\x65\x61\x63\x68\x28\x5b\x22\x62\x69\x6e\x64\x22\x2c\x22\x6f\x6e\x65\x22\x5d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x64\x2e\x66\x6e\x5b\x63\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x65\x2c\x66\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x67\x20\x69\x6e\x20\x61\x29\x74\x68\x69\x73\x5b\x63\x5d\x28\x67\x2c\x65\x2c\x61\x5b\x67\x5d\x2c\x66\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x69\x66\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x29\x7c\x7c\x65\x3d\x3d\x3d\x21\x31\x29\x66\x3d\x65\x2c\x65\x3d\x62\x3b\x76\x61\x72\x20\x68\x3d\x63\x3d\x3d\x3d\x22\x6f\x6e\x65\x22\x3f\x64\x2e\x70\x72\x6f\x78\x79\x28\x66\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x64\x28\x74\x68\x69\x73\x29\x2e\x75\x6e\x62\x69\x6e\x64\x28\x61\x2c\x68\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x7d\x29\x3a\x66\x3b\x69\x66\x28\x61\x3d\x3d\x3d\x22\x75\x6e\x6c\x6f\x61\x64\x22\x26\x26\x63\x21\x3d\x3d\x22\x6f\x6e\x65\x22\x29\x74\x68\x69\x73\x2e\x6f\x6e\x65\x28\x61\x2c\x65\x2c\x66\x29\x3b\x65\x6c\x73\x65\x20\x66\x6f\x72\x28\x76\x61\x72\x20\x69\x3d\x30\x2c\x6a\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x69\x3c\x6a\x3b\x69\x2b\x2b\x29\x64\x2e\x65\x76\x65\x6e\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x5b\x69\x5d\x2c\x61\x2c\x68\x2c\x65\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x7d\x29\x2c\x64\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x75\x6e\x62\x69\x6e\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x21\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x7c\x7c\x61\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x29\x66\x6f\x72\x28\x76\x61\x72\x20\x65\x3d\x30\x2c\x66\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x65\x3c\x66\x3b\x65\x2b\x2b\x29\x64\x2e\x65\x76\x65\x6e\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x5b\x65\x5d\x2c\x61\x2c\x62\x29\x3b\x65\x6c\x73\x65\x20\x66\x6f\x72\x28\x76\x61\x72\x20\x63\x20\x69\x6e\x20\x61\x29\x74\x68\x69\x73\x2e\x75\x6e\x62\x69\x6e\x64\x28\x63\x2c\x61\x5b\x63\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x64\x65\x6c\x65\x67\x61\x74\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6c\x69\x76\x65\x28\x62\x2c\x63\x2c\x64\x2c\x61\x29\x7d\x2c\x75\x6e\x64\x65\x6c\x65\x67\x61\x74\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x30\x3f\x74\x68\x69\x73\x2e\x75\x6e\x62\x69\x6e\x64\x28\x22\x6c\x69\x76\x65\x22\x29\x3a\x74\x68\x69\x73\x2e\x64\x69\x65\x28\x62\x2c\x6e\x75\x6c\x6c\x2c\x63\x2c\x61\x29\x7d\x2c\x74\x72\x69\x67\x67\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x64\x2e\x65\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x61\x2c\x62\x2c\x74\x68\x69\x73\x29\x7d\x29\x7d\x2c\x74\x72\x69\x67\x67\x65\x72\x48\x61\x6e\x64\x6c\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x74\x68\x69\x73\x5b\x30\x5d\x29\x7b\x76\x61\x72\x20\x63\x3d\x64\x2e\x45\x76\x65\x6e\x74\x28\x61\x29\x3b\x63\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x2c\x63\x2e\x73\x74\x6f\x70\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x28\x29\x2c\x64\x2e\x65\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x63\x2c\x62\x2c\x74\x68\x69\x73\x5b\x30\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x2e\x72\x65\x73\x75\x6c\x74\x7d\x7d\x2c\x74\x6f\x67\x67\x6c\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x63\x3d\x31\x3b\x77\x68\x69\x6c\x65\x28\x63\x3c\x62\x2e\x6c\x65\x6e\x67\x74\x68\x29\x64\x2e\x70\x72\x6f\x78\x79\x28\x61\x2c\x62\x5b\x63\x2b\x2b\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x6c\x69\x63\x6b\x28\x64\x2e\x70\x72\x6f\x78\x79\x28\x61\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x29\x7b\x76\x61\x72\x20\x66\x3d\x28\x64\x2e\x5f\x64\x61\x74\x61\x28\x74\x68\x69\x73\x2c\x22\x6c\x61\x73\x74\x54\x6f\x67\x67\x6c\x65\x22\x2b\x61\x2e\x67\x75\x69\x64\x29\x7c\x7c\x30\x29\x25\x63\x3b\x64\x2e\x5f\x64\x61\x74\x61\x28\x74\x68\x69\x73\x2c\x22\x6c\x61\x73\x74\x54\x6f\x67\x67\x6c\x65\x22\x2b\x61\x2e\x67\x75\x69\x64\x2c\x66\x2b\x31\x29\x2c\x65\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x5b\x66\x5d\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x7c\x7c\x21\x31\x7d\x29\x29\x7d\x2c\x68\x6f\x76\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x28\x61\x29\x2e\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x28\x62\x7c\x7c\x61\x29\x7d\x7d\x29\x3b\x76\x61\x72\x20\x46\x3d\x7b\x66\x6f\x63\x75\x73\x3a\x22\x66\x6f\x63\x75\x73\x69\x6e\x22\x2c\x62\x6c\x75\x72\x3a\x22\x66\x6f\x63\x75\x73\x6f\x75\x74\x22\x2c\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x3a\x22\x6d\x6f\x75\x73\x65\x6f\x76\x65\x72\x22\x2c\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x3a\x22\x6d\x6f\x75\x73\x65\x6f\x75\x74\x22\x7d\x3b\x64\x2e\x65\x61\x63\x68\x28\x5b\x22\x6c\x69\x76\x65\x22\x2c\x22\x64\x69\x65\x22\x5d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x64\x2e\x66\x6e\x5b\x63\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x65\x2c\x66\x2c\x67\x29\x7b\x76\x61\x72\x20\x68\x2c\x69\x3d\x30\x2c\x6a\x2c\x6b\x2c\x6c\x2c\x6d\x3d\x67\x7c\x7c\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x2c\x6e\x3d\x67\x3f\x74\x68\x69\x73\x3a\x64\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x78\x74\x29\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x26\x26\x21\x61\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x6f\x20\x69\x6e\x20\x61\x29\x6e\x5b\x63\x5d\x28\x6f\x2c\x65\x2c\x61\x5b\x6f\x5d\x2c\x6d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x29\x26\x26\x28\x66\x3d\x65\x2c\x65\x3d\x62\x29\x2c\x61\x3d\x28\x61\x7c\x7c\x22\x22\x29\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x3b\x77\x68\x69\x6c\x65\x28\x28\x68\x3d\x61\x5b\x69\x2b\x2b\x5d\x29\x21\x3d\x6e\x75\x6c\x6c\x29\x7b\x6a\x3d\x72\x2e\x65\x78\x65\x63\x28\x68\x29\x2c\x6b\x3d\x22\x22\x2c\x6a\x26\x26\x28\x6b\x3d\x6a\x5b\x30\x5d\x2c\x68\x3d\x68\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x72\x2c\x22\x22\x29\x29\x3b\x69\x66\x28\x68\x3d\x3d\x3d\x22\x68\x6f\x76\x65\x72\x22\x29\x7b\x61\x2e\x70\x75\x73\x68\x28\x22\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x22\x2b\x6b\x2c\x22\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x22\x2b\x6b\x29\x3b\x63\x6f\x6e\x74\x69\x6e\x75\x65\x7d\x6c\x3d\x68\x2c\x68\x3d\x3d\x3d\x22\x66\x6f\x63\x75\x73\x22\x7c\x7c\x68\x3d\x3d\x3d\x22\x62\x6c\x75\x72\x22\x3f\x28\x61\x2e\x70\x75\x73\x68\x28\x46\x5b\x68\x5d\x2b\x6b\x29\x2c\x68\x3d\x68\x2b\x6b\x29\x3a\x68\x3d\x28\x46\x5b\x68\x5d\x7c\x7c\x68\x29\x2b\x6b\x3b\x69\x66\x28\x63\x3d\x3d\x3d\x22\x6c\x69\x76\x65\x22\x29\x66\x6f\x72\x28\x76\x61\x72\x20\x70\x3d\x30\x2c\x71\x3d\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x70\x3c\x71\x3b\x70\x2b\x2b\x29\x64\x2e\x65\x76\x65\x6e\x74\x2e\x61\x64\x64\x28\x6e\x5b\x70\x5d\x2c\x22\x6c\x69\x76\x65\x2e\x22\x2b\x48\x28\x68\x2c\x6d\x29\x2c\x7b\x64\x61\x74\x61\x3a\x65\x2c\x73\x65\x6c\x65\x63\x74\x6f\x72\x3a\x6d\x2c\x68\x61\x6e\x64\x6c\x65\x72\x3a\x66\x2c\x6f\x72\x69\x67\x54\x79\x70\x65\x3a\x68\x2c\x6f\x72\x69\x67\x48\x61\x6e\x64\x6c\x65\x72\x3a\x66\x2c\x70\x72\x65\x54\x79\x70\x65\x3a\x6c\x7d\x29\x3b\x65\x6c\x73\x65\x20\x6e\x2e\x75\x6e\x62\x69\x6e\x64\x28\x22\x6c\x69\x76\x65\x2e\x22\x2b\x48\x28\x68\x2c\x6d\x29\x2c\x66\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x7d\x29\x2c\x64\x2e\x65\x61\x63\x68\x28\x22\x62\x6c\x75\x72\x20\x66\x6f\x63\x75\x73\x20\x66\x6f\x63\x75\x73\x69\x6e\x20\x66\x6f\x63\x75\x73\x6f\x75\x74\x20\x6c\x6f\x61\x64\x20\x72\x65\x73\x69\x7a\x65\x20\x73\x63\x72\x6f\x6c\x6c\x20\x75\x6e\x6c\x6f\x61\x64\x20\x63\x6c\x69\x63\x6b\x20\x64\x62\x6c\x63\x6c\x69\x63\x6b\x20\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x20\x6d\x6f\x75\x73\x65\x75\x70\x20\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x20\x6d\x6f\x75\x73\x65\x6f\x76\x65\x72\x20\x6d\x6f\x75\x73\x65\x6f\x75\x74\x20\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x20\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x20\x63\x68\x61\x6e\x67\x65\x20\x73\x65\x6c\x65\x63\x74\x20\x73\x75\x62\x6d\x69\x74\x20\x6b\x65\x79\x64\x6f\x77\x6e\x20\x6b\x65\x79\x70\x72\x65\x73\x73\x20\x6b\x65\x79\x75\x70\x20\x65\x72\x72\x6f\x72\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x64\x2e\x66\x6e\x5b\x62\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x63\x3d\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x63\x3d\x61\x2c\x61\x3d\x6e\x75\x6c\x6c\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x30\x3f\x74\x68\x69\x73\x2e\x62\x69\x6e\x64\x28\x62\x2c\x61\x2c\x63\x29\x3a\x74\x68\x69\x73\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x62\x29\x7d\x2c\x64\x2e\x61\x74\x74\x72\x46\x6e\x26\x26\x28\x64\x2e\x61\x74\x74\x72\x46\x6e\x5b\x62\x5d\x3d\x21\x30\x29\x7d\x29\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x75\x28\x61\x2c\x62\x2c\x63\x2c\x64\x2c\x65\x2c\x66\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x67\x3d\x30\x2c\x68\x3d\x64\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x67\x3c\x68\x3b\x67\x2b\x2b\x29\x7b\x76\x61\x72\x20\x69\x3d\x64\x5b\x67\x5d\x3b\x69\x66\x28\x69\x29\x7b\x76\x61\x72\x20\x6a\x3d\x21\x31\x3b\x69\x3d\x69\x5b\x61\x5d\x3b\x77\x68\x69\x6c\x65\x28\x69\x29\x7b\x69\x66\x28\x69\x2e\x73\x69\x7a\x63\x61\x63\x68\x65\x3d\x3d\x3d\x63\x29\x7b\x6a\x3d\x64\x5b\x69\x2e\x73\x69\x7a\x73\x65\x74\x5d\x3b\x62\x72\x65\x61\x6b\x7d\x69\x66\x28\x69\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x7b\x66\x7c\x7c\x28\x69\x2e\x73\x69\x7a\x63\x61\x63\x68\x65\x3d\x63\x2c\x69\x2e\x73\x69\x7a\x73\x65\x74\x3d\x67\x29\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x62\x21\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x7b\x69\x66\x28\x69\x3d\x3d\x3d\x62\x29\x7b\x6a\x3d\x21\x30\x3b\x62\x72\x65\x61\x6b\x7d\x7d\x65\x6c\x73\x65\x20\x69\x66\x28\x6b\x2e\x66\x69\x6c\x74\x65\x72\x28\x62\x2c\x5b\x69\x5d\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x30\x29\x7b\x6a\x3d\x69\x3b\x62\x72\x65\x61\x6b\x7d\x7d\x69\x3d\x69\x5b\x61\x5d\x7d\x64\x5b\x67\x5d\x3d\x6a\x7d\x7d\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x28\x61\x2c\x62\x2c\x63\x2c\x64\x2c\x65\x2c\x66\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x67\x3d\x30\x2c\x68\x3d\x64\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x67\x3c\x68\x3b\x67\x2b\x2b\x29\x7b\x76\x61\x72\x20\x69\x3d\x64\x5b\x67\x5d\x3b\x69\x66\x28\x69\x29\x7b\x76\x61\x72\x20\x6a\x3d\x21\x31\x3b\x69\x3d\x69\x5b\x61\x5d\x3b\x77\x68\x69\x6c\x65\x28\x69\x29\x7b\x69\x66\x28\x69\x2e\x73\x69\x7a\x63\x61\x63\x68\x65\x3d\x3d\x3d\x63\x29\x7b\x6a\x3d\x64\x5b\x69\x2e\x73\x69\x7a\x73\x65\x74\x5d\x3b\x62\x72\x65\x61\x6b\x7d\x69\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x21\x66\x26\x26\x28\x69\x2e\x73\x69\x7a\x63\x61\x63\x68\x65\x3d\x63\x2c\x69\x2e\x73\x69\x7a\x73\x65\x74\x3d\x67\x29\x3b\x69\x66\x28\x69\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x62\x29\x7b\x6a\x3d\x69\x3b\x62\x72\x65\x61\x6b\x7d\x69\x3d\x69\x5b\x61\x5d\x7d\x64\x5b\x67\x5d\x3d\x6a\x7d\x7d\x7d\x76\x61\x72\x20\x61\x3d\x2f\x28\x28\x3f\x3a\x5c\x28\x28\x3f\x3a\x5c\x28\x5b\x5e\x28\x29\x5d\x2b\x5c\x29\x7c\x5b\x5e\x28\x29\x5d\x2b\x29\x2b\x5c\x29\x7c\x5c\x5b\x28\x3f\x3a\x5c\x5b\x5b\x5e\x5c\x5b\x5c\x5d\x5d\x2a\x5c\x5d\x7c\x5b\x27\x22\x5d\x5b\x5e\x27\x22\x5d\x2a\x5b\x27\x22\x5d\x7c\x5b\x5e\x5c\x5b\x5c\x5d\x27\x22\x5d\x2b\x29\x2b\x5c\x5d\x7c\x5c\x5c\x2e\x7c\x5b\x5e\x20\x3e\x2b\x7e\x2c\x28\x5c\x5b\x5c\x5c\x5d\x2b\x29\x2b\x7c\x5b\x3e\x2b\x7e\x5d\x29\x28\x5c\x73\x2a\x2c\x5c\x73\x2a\x29\x3f\x28\x28\x3f\x3a\x2e\x7c\x5c\x72\x7c\x5c\x6e\x29\x2a\x29\x2f\x67\x2c\x65\x3d\x30\x2c\x66\x3d\x4f\x62\x6a\x65\x63\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x2c\x67\x3d\x21\x31\x2c\x68\x3d\x21\x30\x2c\x69\x3d\x2f\x5c\x5c\x2f\x67\x2c\x6a\x3d\x2f\x5c\x57\x2f\x3b\x5b\x30\x2c\x30\x5d\x2e\x73\x6f\x72\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x68\x3d\x21\x31\x3b\x72\x65\x74\x75\x72\x6e\x20\x30\x7d\x29\x3b\x76\x61\x72\x20\x6b\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x2c\x64\x2c\x65\x2c\x67\x29\x7b\x65\x3d\x65\x7c\x7c\x5b\x5d\x2c\x64\x3d\x64\x7c\x7c\x63\x3b\x76\x61\x72\x20\x68\x3d\x64\x3b\x69\x66\x28\x64\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x31\x26\x26\x64\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x39\x29\x72\x65\x74\x75\x72\x6e\x5b\x5d\x3b\x69\x66\x28\x21\x62\x7c\x7c\x74\x79\x70\x65\x6f\x66\x20\x62\x21\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x72\x65\x74\x75\x72\x6e\x20\x65\x3b\x76\x61\x72\x20\x69\x2c\x6a\x2c\x6e\x2c\x6f\x2c\x71\x2c\x72\x2c\x73\x2c\x74\x2c\x75\x3d\x21\x30\x2c\x77\x3d\x6b\x2e\x69\x73\x58\x4d\x4c\x28\x64\x29\x2c\x78\x3d\x5b\x5d\x2c\x79\x3d\x62\x3b\x64\x6f\x7b\x61\x2e\x65\x78\x65\x63\x28\x22\x22\x29\x2c\x69\x3d\x61\x2e\x65\x78\x65\x63\x28\x79\x29\x3b\x69\x66\x28\x69\x29\x7b\x79\x3d\x69\x5b\x33\x5d\x2c\x78\x2e\x70\x75\x73\x68\x28\x69\x5b\x31\x5d\x29\x3b\x69\x66\x28\x69\x5b\x32\x5d\x29\x7b\x6f\x3d\x69\x5b\x33\x5d\x3b\x62\x72\x65\x61\x6b\x7d\x7d\x7d\x77\x68\x69\x6c\x65\x28\x69\x29\x3b\x69\x66\x28\x78\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x31\x26\x26\x6d\x2e\x65\x78\x65\x63\x28\x62\x29\x29\x69\x66\x28\x78\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x32\x26\x26\x6c\x2e\x72\x65\x6c\x61\x74\x69\x76\x65\x5b\x78\x5b\x30\x5d\x5d\x29\x6a\x3d\x76\x28\x78\x5b\x30\x5d\x2b\x78\x5b\x31\x5d\x2c\x64\x29\x3b\x65\x6c\x73\x65\x7b\x6a\x3d\x6c\x2e\x72\x65\x6c\x61\x74\x69\x76\x65\x5b\x78\x5b\x30\x5d\x5d\x3f\x5b\x64\x5d\x3a\x6b\x28\x78\x2e\x73\x68\x69\x66\x74\x28\x29\x2c\x64\x29\x3b\x77\x68\x69\x6c\x65\x28\x78\x2e\x6c\x65\x6e\x67\x74\x68\x29\x62\x3d\x78\x2e\x73\x68\x69\x66\x74\x28\x29\x2c\x6c\x2e\x72\x65\x6c\x61\x74\x69\x76\x65\x5b\x62\x5d\x26\x26\x28\x62\x2b\x3d\x78\x2e\x73\x68\x69\x66\x74\x28\x29\x29\x2c\x6a\x3d\x76\x28\x62\x2c\x6a\x29\x7d\x65\x6c\x73\x65\x7b\x21\x67\x26\x26\x78\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x31\x26\x26\x64\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x39\x26\x26\x21\x77\x26\x26\x6c\x2e\x6d\x61\x74\x63\x68\x2e\x49\x44\x2e\x74\x65\x73\x74\x28\x78\x5b\x30\x5d\x29\x26\x26\x21\x6c\x2e\x6d\x61\x74\x63\x68\x2e\x49\x44\x2e\x74\x65\x73\x74\x28\x78\x5b\x78\x2e\x6c\x65\x6e\x67\x74\x68\x2d\x31\x5d\x29\x26\x26\x28\x71\x3d\x6b\x2e\x66\x69\x6e\x64\x28\x78\x2e\x73\x68\x69\x66\x74\x28\x29\x2c\x64\x2c\x77\x29\x2c\x64\x3d\x71\x2e\x65\x78\x70\x72\x3f\x6b\x2e\x66\x69\x6c\x74\x65\x72\x28\x71\x2e\x65\x78\x70\x72\x2c\x71\x2e\x73\x65\x74\x29\x5b\x30\x5d\x3a\x71\x2e\x73\x65\x74\x5b\x30\x5d\x29\x3b\x69\x66\x28\x64\x29\x7b\x71\x3d\x67\x3f\x7b\x65\x78\x70\x72\x3a\x78\x2e\x70\x6f\x70\x28\x29\x2c\x73\x65\x74\x3a\x70\x28\x67\x29\x7d\x3a\x6b\x2e\x66\x69\x6e\x64\x28\x78\x2e\x70\x6f\x70\x28\x29\x2c\x78\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x26\x26\x28\x78\x5b\x30\x5d\x3d\x3d\x3d\x22\x7e\x22\x7c\x7c\x78\x5b\x30\x5d\x3d\x3d\x3d\x22\x2b\x22\x29\x26\x26\x64\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3f\x64\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3a\x64\x2c\x77\x29\x2c\x6a\x3d\x71\x2e\x65\x78\x70\x72\x3f\x6b\x2e\x66\x69\x6c\x74\x65\x72\x28\x71\x2e\x65\x78\x70\x72\x2c\x71\x2e\x73\x65\x74\x29\x3a\x71\x2e\x73\x65\x74\x2c\x78\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x30\x3f\x6e\x3d\x70\x28\x6a\x29\x3a\x75\x3d\x21\x31\x3b\x77\x68\x69\x6c\x65\x28\x78\x2e\x6c\x65\x6e\x67\x74\x68\x29\x72\x3d\x78\x2e\x70\x6f\x70\x28\x29\x2c\x73\x3d\x72\x2c\x6c\x2e\x72\x65\x6c\x61\x74\x69\x76\x65\x5b\x72\x5d\x3f\x73\x3d\x78\x2e\x70\x6f\x70\x28\x29\x3a\x72\x3d\x22\x22\x2c\x73\x3d\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x73\x3d\x64\x29\x2c\x6c\x2e\x72\x65\x6c\x61\x74\x69\x76\x65\x5b\x72\x5d\x28\x6e\x2c\x73\x2c\x77\x29\x7d\x65\x6c\x73\x65\x20\x6e\x3d\x78\x3d\x5b\x5d\x7d\x6e\x7c\x7c\x28\x6e\x3d\x6a\x29\x2c\x6e\x7c\x7c\x6b\x2e\x65\x72\x72\x6f\x72\x28\x72\x7c\x7c\x62\x29\x3b\x69\x66\x28\x66\x2e\x63\x61\x6c\x6c\x28\x6e\x29\x3d\x3d\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x41\x72\x72\x61\x79\x5d\x22\x29\x69\x66\x28\x75\x29\x69\x66\x28\x64\x26\x26\x64\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x66\x6f\x72\x28\x74\x3d\x30\x3b\x6e\x5b\x74\x5d\x21\x3d\x6e\x75\x6c\x6c\x3b\x74\x2b\x2b\x29\x6e\x5b\x74\x5d\x26\x26\x28\x6e\x5b\x74\x5d\x3d\x3d\x3d\x21\x30\x7c\x7c\x6e\x5b\x74\x5d\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x6b\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x64\x2c\x6e\x5b\x74\x5d\x29\x29\x26\x26\x65\x2e\x70\x75\x73\x68\x28\x6a\x5b\x74\x5d\x29\x3b\x65\x6c\x73\x65\x20\x66\x6f\x72\x28\x74\x3d\x30\x3b\x6e\x5b\x74\x5d\x21\x3d\x6e\x75\x6c\x6c\x3b\x74\x2b\x2b\x29\x6e\x5b\x74\x5d\x26\x26\x6e\x5b\x74\x5d\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x65\x2e\x70\x75\x73\x68\x28\x6a\x5b\x74\x5d\x29\x3b\x65\x6c\x73\x65\x20\x65\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x65\x2c\x6e\x29\x3b\x65\x6c\x73\x65\x20\x70\x28\x6e\x2c\x65\x29\x3b\x6f\x26\x26\x28\x6b\x28\x6f\x2c\x68\x2c\x65\x2c\x67\x29\x2c\x6b\x2e\x75\x6e\x69\x71\x75\x65\x53\x6f\x72\x74\x28\x65\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x7d\x3b\x6b\x2e\x75\x6e\x69\x71\x75\x65\x53\x6f\x72\x74\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x72\x29\x7b\x67\x3d\x68\x2c\x61\x2e\x73\x6f\x72\x74\x28\x72\x29\x3b\x69\x66\x28\x67\x29\x66\x6f\x72\x28\x76\x61\x72\x20\x62\x3d\x31\x3b\x62\x3c\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x62\x2b\x2b\x29\x61\x5b\x62\x5d\x3d\x3d\x3d\x61\x5b\x62\x2d\x31\x5d\x26\x26\x61\x2e\x73\x70\x6c\x69\x63\x65\x28\x62\x2d\x2d\x2c\x31\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x2c\x6b\x2e\x6d\x61\x74\x63\x68\x65\x73\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x6b\x28\x61\x2c\x6e\x75\x6c\x6c\x2c\x6e\x75\x6c\x6c\x2c\x62\x29\x7d\x2c\x6b\x2e\x6d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x6b\x28\x62\x2c\x6e\x75\x6c\x6c\x2c\x6e\x75\x6c\x6c\x2c\x5b\x61\x5d\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x30\x7d\x2c\x6b\x2e\x66\x69\x6e\x64\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3b\x69\x66\x28\x21\x61\x29\x72\x65\x74\x75\x72\x6e\x5b\x5d\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x65\x3d\x30\x2c\x66\x3d\x6c\x2e\x6f\x72\x64\x65\x72\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x65\x3c\x66\x3b\x65\x2b\x2b\x29\x7b\x76\x61\x72\x20\x67\x2c\x68\x3d\x6c\x2e\x6f\x72\x64\x65\x72\x5b\x65\x5d\x3b\x69\x66\x28\x67\x3d\x6c\x2e\x6c\x65\x66\x74\x4d\x61\x74\x63\x68\x5b\x68\x5d\x2e\x65\x78\x65\x63\x28\x61\x29\x29\x7b\x76\x61\x72\x20\x6a\x3d\x67\x5b\x31\x5d\x3b\x67\x2e\x73\x70\x6c\x69\x63\x65\x28\x31\x2c\x31\x29\x3b\x69\x66\x28\x6a\x2e\x73\x75\x62\x73\x74\x72\x28\x6a\x2e\x6c\x65\x6e\x67\x74\x68\x2d\x31\x29\x21\x3d\x3d\x22\x5c\x5c\x22\x29\x7b\x67\x5b\x31\x5d\x3d\x28\x67\x5b\x31\x5d\x7c\x7c\x22\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x69\x2c\x22\x22\x29\x2c\x64\x3d\x6c\x2e\x66\x69\x6e\x64\x5b\x68\x5d\x28\x67\x2c\x62\x2c\x63\x29\x3b\x69\x66\x28\x64\x21\x3d\x6e\x75\x6c\x6c\x29\x7b\x61\x3d\x61\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6c\x2e\x6d\x61\x74\x63\x68\x5b\x68\x5d\x2c\x22\x22\x29\x3b\x62\x72\x65\x61\x6b\x7d\x7d\x7d\x7d\x64\x7c\x7c\x28\x64\x3d\x74\x79\x70\x65\x6f\x66\x20\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x21\x3d\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x3f\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x2a\x22\x29\x3a\x5b\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x7b\x73\x65\x74\x3a\x64\x2c\x65\x78\x70\x72\x3a\x61\x7d\x7d\x2c\x6b\x2e\x66\x69\x6c\x74\x65\x72\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x64\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x2c\x67\x2c\x68\x3d\x61\x2c\x69\x3d\x5b\x5d\x2c\x6a\x3d\x63\x2c\x6d\x3d\x63\x26\x26\x63\x5b\x30\x5d\x26\x26\x6b\x2e\x69\x73\x58\x4d\x4c\x28\x63\x5b\x30\x5d\x29\x3b\x77\x68\x69\x6c\x65\x28\x61\x26\x26\x63\x2e\x6c\x65\x6e\x67\x74\x68\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x6e\x20\x69\x6e\x20\x6c\x2e\x66\x69\x6c\x74\x65\x72\x29\x69\x66\x28\x28\x66\x3d\x6c\x2e\x6c\x65\x66\x74\x4d\x61\x74\x63\x68\x5b\x6e\x5d\x2e\x65\x78\x65\x63\x28\x61\x29\x29\x21\x3d\x6e\x75\x6c\x6c\x26\x26\x66\x5b\x32\x5d\x29\x7b\x76\x61\x72\x20\x6f\x2c\x70\x2c\x71\x3d\x6c\x2e\x66\x69\x6c\x74\x65\x72\x5b\x6e\x5d\x2c\x72\x3d\x66\x5b\x31\x5d\x3b\x67\x3d\x21\x31\x2c\x66\x2e\x73\x70\x6c\x69\x63\x65\x28\x31\x2c\x31\x29\x3b\x69\x66\x28\x72\x2e\x73\x75\x62\x73\x74\x72\x28\x72\x2e\x6c\x65\x6e\x67\x74\x68\x2d\x31\x29\x3d\x3d\x3d\x22\x5c\x5c\x22\x29\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x6a\x3d\x3d\x3d\x69\x26\x26\x28\x69\x3d\x5b\x5d\x29\x3b\x69\x66\x28\x6c\x2e\x70\x72\x65\x46\x69\x6c\x74\x65\x72\x5b\x6e\x5d\x29\x7b\x66\x3d\x6c\x2e\x70\x72\x65\x46\x69\x6c\x74\x65\x72\x5b\x6e\x5d\x28\x66\x2c\x6a\x2c\x64\x2c\x69\x2c\x65\x2c\x6d\x29\x3b\x69\x66\x28\x66\x29\x7b\x69\x66\x28\x66\x3d\x3d\x3d\x21\x30\x29\x63\x6f\x6e\x74\x69\x6e\x75\x65\x7d\x65\x6c\x73\x65\x20\x67\x3d\x6f\x3d\x21\x30\x7d\x69\x66\x28\x66\x29\x66\x6f\x72\x28\x76\x61\x72\x20\x73\x3d\x30\x3b\x28\x70\x3d\x6a\x5b\x73\x5d\x29\x21\x3d\x6e\x75\x6c\x6c\x3b\x73\x2b\x2b\x29\x69\x66\x28\x70\x29\x7b\x6f\x3d\x71\x28\x70\x2c\x66\x2c\x73\x2c\x6a\x29\x3b\x76\x61\x72\x20\x74\x3d\x65\x5e\x21\x21\x6f\x3b\x64\x26\x26\x6f\x21\x3d\x6e\x75\x6c\x6c\x3f\x74\x3f\x67\x3d\x21\x30\x3a\x6a\x5b\x73\x5d\x3d\x21\x31\x3a\x74\x26\x26\x28\x69\x2e\x70\x75\x73\x68\x28\x70\x29\x2c\x67\x3d\x21\x30\x29\x7d\x69\x66\x28\x6f\x21\x3d\x3d\x62\x29\x7b\x64\x7c\x7c\x28\x6a\x3d\x69\x29\x2c\x61\x3d\x61\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6c\x2e\x6d\x61\x74\x63\x68\x5b\x6e\x5d\x2c\x22\x22\x29\x3b\x69\x66\x28\x21\x67\x29\x72\x65\x74\x75\x72\x6e\x5b\x5d\x3b\x62\x72\x65\x61\x6b\x7d\x7d\x69\x66\x28\x61\x3d\x3d\x3d\x68\x29\x69\x66\x28\x67\x3d\x3d\x6e\x75\x6c\x6c\x29\x6b\x2e\x65\x72\x72\x6f\x72\x28\x61\x29\x3b\x65\x6c\x73\x65\x20\x62\x72\x65\x61\x6b\x3b\x68\x3d\x61\x7d\x72\x65\x74\x75\x72\x6e\x20\x6a\x7d\x2c\x6b\x2e\x65\x72\x72\x6f\x72\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x74\x68\x72\x6f\x77\x22\x53\x79\x6e\x74\x61\x78\x20\x65\x72\x72\x6f\x72\x2c\x20\x75\x6e\x72\x65\x63\x6f\x67\x6e\x69\x7a\x65\x64\x20\x65\x78\x70\x72\x65\x73\x73\x69\x6f\x6e\x3a\x20\x22\x2b\x61\x7d\x3b\x76\x61\x72\x20\x6c\x3d\x6b\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x73\x3d\x7b\x6f\x72\x64\x65\x72\x3a\x5b\x22\x49\x44\x22\x2c\x22\x4e\x41\x4d\x45\x22\x2c\x22\x54\x41\x47\x22\x5d\x2c\x6d\x61\x74\x63\x68\x3a\x7b\x49\x44\x3a\x2f\x23\x28\x28\x3f\x3a\x5b\x5c\x77\x5c\x75\x30\x30\x63\x30\x2d\x5c\x75\x46\x46\x46\x46\x5c\x2d\x5d\x7c\x5c\x5c\x2e\x29\x2b\x29\x2f\x2c\x43\x4c\x41\x53\x53\x3a\x2f\x5c\x2e\x28\x28\x3f\x3a\x5b\x5c\x77\x5c\x75\x30\x30\x63\x30\x2d\x5c\x75\x46\x46\x46\x46\x5c\x2d\x5d\x7c\x5c\x5c\x2e\x29\x2b\x29\x2f\x2c\x4e\x41\x4d\x45\x3a\x2f\x5c\x5b\x6e\x61\x6d\x65\x3d\x5b\x27\x22\x5d\x2a\x28\x28\x3f\x3a\x5b\x5c\x77\x5c\x75\x30\x30\x63\x30\x2d\x5c\x75\x46\x46\x46\x46\x5c\x2d\x5d\x7c\x5c\x5c\x2e\x29\x2b\x29\x5b\x27\x22\x5d\x2a\x5c\x5d\x2f\x2c\x41\x54\x54\x52\x3a\x2f\x5c\x5b\x5c\x73\x2a\x28\x28\x3f\x3a\x5b\x5c\x77\x5c\x75\x30\x30\x63\x30\x2d\x5c\x75\x46\x46\x46\x46\x5c\x2d\x5d\x7c\x5c\x5c\x2e\x29\x2b\x29\x5c\x73\x2a\x28\x3f\x3a\x28\x5c\x53\x3f\x3d\x29\x5c\x73\x2a\x28\x3f\x3a\x28\x5b\x27\x22\x5d\x29\x28\x2e\x2a\x3f\x29\x5c\x33\x7c\x28\x23\x3f\x28\x3f\x3a\x5b\x5c\x77\x5c\x75\x30\x30\x63\x30\x2d\x5c\x75\x46\x46\x46\x46\x5c\x2d\x5d\x7c\x5c\x5c\x2e\x29\x2a\x29\x7c\x29\x7c\x29\x5c\x73\x2a\x5c\x5d\x2f\x2c\x54\x41\x47\x3a\x2f\x5e\x28\x28\x3f\x3a\x5b\x5c\x77\x5c\x75\x30\x30\x63\x30\x2d\x5c\x75\x46\x46\x46\x46\x5c\x2a\x5c\x2d\x5d\x7c\x5c\x5c\x2e\x29\x2b\x29\x2f\x2c\x43\x48\x49\x4c\x44\x3a\x2f\x3a\x28\x6f\x6e\x6c\x79\x7c\x6e\x74\x68\x7c\x6c\x61\x73\x74\x7c\x66\x69\x72\x73\x74\x29\x2d\x63\x68\x69\x6c\x64\x28\x3f\x3a\x5c\x28\x5c\x73\x2a\x28\x65\x76\x65\x6e\x7c\x6f\x64\x64\x7c\x28\x3f\x3a\x5b\x2b\x5c\x2d\x5d\x3f\x5c\x64\x2b\x7c\x28\x3f\x3a\x5b\x2b\x5c\x2d\x5d\x3f\x5c\x64\x2a\x29\x3f\x6e\x5c\x73\x2a\x28\x3f\x3a\x5b\x2b\x5c\x2d\x5d\x5c\x73\x2a\x5c\x64\x2b\x29\x3f\x29\x29\x5c\x73\x2a\x5c\x29\x29\x3f\x2f\x2c\x50\x4f\x53\x3a\x2f\x3a\x28\x6e\x74\x68\x7c\x65\x71\x7c\x67\x74\x7c\x6c\x74\x7c\x66\x69\x72\x73\x74\x7c\x6c\x61\x73\x74\x7c\x65\x76\x65\x6e\x7c\x6f\x64\x64\x29\x28\x3f\x3a\x5c\x28\x28\x5c\x64\x2a\x29\x5c\x29\x29\x3f\x28\x3f\x3d\x5b\x5e\x5c\x2d\x5d\x7c\x24\x29\x2f\x2c\x50\x53\x45\x55\x44\x4f\x3a\x2f\x3a\x28\x28\x3f\x3a\x5b\x5c\x77\x5c\x75\x30\x30\x63\x30\x2d\x5c\x75\x46\x46\x46\x46\x5c\x2d\x5d\x7c\x5c\x5c\x2e\x29\x2b\x29\x28\x3f\x3a\x5c\x28\x28\x5b\x27\x22\x5d\x3f\x29\x28\x28\x3f\x3a\x5c\x28\x5b\x5e\x5c\x29\x5d\x2b\x5c\x29\x7c\x5b\x5e\x5c\x28\x5c\x29\x5d\x2a\x29\x2b\x29\x5c\x32\x5c\x29\x29\x3f\x2f\x7d\x2c\x6c\x65\x66\x74\x4d\x61\x74\x63\x68\x3a\x7b\x7d\x2c\x61\x74\x74\x72\x4d\x61\x70\x3a\x7b\x22\x63\x6c\x61\x73\x73\x22\x3a\x22\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x22\x2c\x22\x66\x6f\x72\x22\x3a\x22\x68\x74\x6d\x6c\x46\x6f\x72\x22\x7d\x2c\x61\x74\x74\x72\x48\x61\x6e\x64\x6c\x65\x3a\x7b\x68\x72\x65\x66\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x68\x72\x65\x66\x22\x29\x7d\x2c\x74\x79\x70\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x79\x70\x65\x22\x29\x7d\x7d\x2c\x72\x65\x6c\x61\x74\x69\x76\x65\x3a\x7b\x22\x2b\x22\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x74\x79\x70\x65\x6f\x66\x20\x62\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x2c\x64\x3d\x63\x26\x26\x21\x6a\x2e\x74\x65\x73\x74\x28\x62\x29\x2c\x65\x3d\x63\x26\x26\x21\x64\x3b\x64\x26\x26\x28\x62\x3d\x62\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x29\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x66\x3d\x30\x2c\x67\x3d\x61\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x68\x3b\x66\x3c\x67\x3b\x66\x2b\x2b\x29\x69\x66\x28\x68\x3d\x61\x5b\x66\x5d\x29\x7b\x77\x68\x69\x6c\x65\x28\x28\x68\x3d\x68\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x53\x69\x62\x6c\x69\x6e\x67\x29\x26\x26\x68\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x31\x29\x7b\x7d\x61\x5b\x66\x5d\x3d\x65\x7c\x7c\x68\x26\x26\x68\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x62\x3f\x68\x7c\x7c\x21\x31\x3a\x68\x3d\x3d\x3d\x62\x7d\x65\x26\x26\x6b\x2e\x66\x69\x6c\x74\x65\x72\x28\x62\x2c\x61\x2c\x21\x30\x29\x7d\x2c\x22\x3e\x22\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x2c\x64\x3d\x74\x79\x70\x65\x6f\x66\x20\x62\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x2c\x65\x3d\x30\x2c\x66\x3d\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x69\x66\x28\x64\x26\x26\x21\x6a\x2e\x74\x65\x73\x74\x28\x62\x29\x29\x7b\x62\x3d\x62\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3b\x66\x6f\x72\x28\x3b\x65\x3c\x66\x3b\x65\x2b\x2b\x29\x7b\x63\x3d\x61\x5b\x65\x5d\x3b\x69\x66\x28\x63\x29\x7b\x76\x61\x72\x20\x67\x3d\x63\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x61\x5b\x65\x5d\x3d\x67\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x62\x3f\x67\x3a\x21\x31\x7d\x7d\x7d\x65\x6c\x73\x65\x7b\x66\x6f\x72\x28\x3b\x65\x3c\x66\x3b\x65\x2b\x2b\x29\x63\x3d\x61\x5b\x65\x5d\x2c\x63\x26\x26\x28\x61\x5b\x65\x5d\x3d\x64\x3f\x63\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3a\x63\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3d\x3d\x3d\x62\x29\x3b\x64\x26\x26\x6b\x2e\x66\x69\x6c\x74\x65\x72\x28\x62\x2c\x61\x2c\x21\x30\x29\x7d\x7d\x2c\x22\x22\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x2c\x66\x3d\x65\x2b\x2b\x2c\x67\x3d\x75\x3b\x74\x79\x70\x65\x6f\x66\x20\x62\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x21\x6a\x2e\x74\x65\x73\x74\x28\x62\x29\x26\x26\x28\x62\x3d\x62\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2c\x64\x3d\x62\x2c\x67\x3d\x74\x29\x2c\x67\x28\x22\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x22\x2c\x62\x2c\x66\x2c\x61\x2c\x64\x2c\x63\x29\x7d\x2c\x22\x7e\x22\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x2c\x66\x3d\x65\x2b\x2b\x2c\x67\x3d\x75\x3b\x74\x79\x70\x65\x6f\x66\x20\x62\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x21\x6a\x2e\x74\x65\x73\x74\x28\x62\x29\x26\x26\x28\x62\x3d\x62\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2c\x64\x3d\x62\x2c\x67\x3d\x74\x29\x2c\x67\x28\x22\x70\x72\x65\x76\x69\x6f\x75\x73\x53\x69\x62\x6c\x69\x6e\x67\x22\x2c\x62\x2c\x66\x2c\x61\x2c\x64\x2c\x63\x29\x7d\x7d\x2c\x66\x69\x6e\x64\x3a\x7b\x49\x44\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x21\x3d\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x26\x26\x21\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x28\x61\x5b\x31\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x26\x26\x64\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3f\x5b\x64\x5d\x3a\x5b\x5d\x7d\x7d\x2c\x4e\x41\x4d\x45\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x4e\x61\x6d\x65\x21\x3d\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x29\x7b\x76\x61\x72\x20\x63\x3d\x5b\x5d\x2c\x64\x3d\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x4e\x61\x6d\x65\x28\x61\x5b\x31\x5d\x29\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x65\x3d\x30\x2c\x66\x3d\x64\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x65\x3c\x66\x3b\x65\x2b\x2b\x29\x64\x5b\x65\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x6e\x61\x6d\x65\x22\x29\x3d\x3d\x3d\x61\x5b\x31\x5d\x26\x26\x63\x2e\x70\x75\x73\x68\x28\x64\x5b\x65\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x30\x3f\x6e\x75\x6c\x6c\x3a\x63\x7d\x7d\x2c\x54\x41\x47\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x21\x3d\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x61\x5b\x31\x5d\x29\x7d\x7d\x2c\x70\x72\x65\x46\x69\x6c\x74\x65\x72\x3a\x7b\x43\x4c\x41\x53\x53\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x2c\x65\x2c\x66\x29\x7b\x61\x3d\x22\x20\x22\x2b\x61\x5b\x31\x5d\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x69\x2c\x22\x22\x29\x2b\x22\x20\x22\x3b\x69\x66\x28\x66\x29\x72\x65\x74\x75\x72\x6e\x20\x61\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x67\x3d\x30\x2c\x68\x3b\x28\x68\x3d\x62\x5b\x67\x5d\x29\x21\x3d\x6e\x75\x6c\x6c\x3b\x67\x2b\x2b\x29\x68\x26\x26\x28\x65\x5e\x28\x68\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x26\x26\x28\x22\x20\x22\x2b\x68\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x2b\x22\x20\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5b\x5c\x74\x5c\x6e\x5c\x72\x5d\x2f\x67\x2c\x22\x20\x22\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x61\x29\x3e\x3d\x30\x29\x3f\x63\x7c\x7c\x64\x2e\x70\x75\x73\x68\x28\x68\x29\x3a\x63\x26\x26\x28\x62\x5b\x67\x5d\x3d\x21\x31\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\x2c\x49\x44\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x5b\x31\x5d\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x69\x2c\x22\x22\x29\x7d\x2c\x54\x41\x47\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x5b\x31\x5d\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x69\x2c\x22\x22\x29\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x7d\x2c\x43\x48\x49\x4c\x44\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x61\x5b\x31\x5d\x3d\x3d\x3d\x22\x6e\x74\x68\x22\x29\x7b\x61\x5b\x32\x5d\x7c\x7c\x6b\x2e\x65\x72\x72\x6f\x72\x28\x61\x5b\x30\x5d\x29\x2c\x61\x5b\x32\x5d\x3d\x61\x5b\x32\x5d\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5e\x5c\x2b\x7c\x5c\x73\x2a\x2f\x67\x2c\x22\x22\x29\x3b\x76\x61\x72\x20\x62\x3d\x2f\x28\x2d\x3f\x29\x28\x5c\x64\x2a\x29\x28\x3f\x3a\x6e\x28\x5b\x2b\x5c\x2d\x5d\x3f\x5c\x64\x2a\x29\x29\x3f\x2f\x2e\x65\x78\x65\x63\x28\x61\x5b\x32\x5d\x3d\x3d\x3d\x22\x65\x76\x65\x6e\x22\x26\x26\x22\x32\x6e\x22\x7c\x7c\x61\x5b\x32\x5d\x3d\x3d\x3d\x22\x6f\x64\x64\x22\x26\x26\x22\x32\x6e\x2b\x31\x22\x7c\x7c\x21\x2f\x5c\x44\x2f\x2e\x74\x65\x73\x74\x28\x61\x5b\x32\x5d\x29\x26\x26\x22\x30\x6e\x2b\x22\x2b\x61\x5b\x32\x5d\x7c\x7c\x61\x5b\x32\x5d\x29\x3b\x61\x5b\x32\x5d\x3d\x62\x5b\x31\x5d\x2b\x28\x62\x5b\x32\x5d\x7c\x7c\x31\x29\x2d\x30\x2c\x61\x5b\x33\x5d\x3d\x62\x5b\x33\x5d\x2d\x30\x7d\x65\x6c\x73\x65\x20\x61\x5b\x32\x5d\x26\x26\x6b\x2e\x65\x72\x72\x6f\x72\x28\x61\x5b\x30\x5d\x29\x3b\x61\x5b\x30\x5d\x3d\x65\x2b\x2b\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x2c\x41\x54\x54\x52\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x2c\x65\x2c\x66\x29\x7b\x76\x61\x72\x20\x67\x3d\x61\x5b\x31\x5d\x3d\x61\x5b\x31\x5d\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x69\x2c\x22\x22\x29\x3b\x21\x66\x26\x26\x6c\x2e\x61\x74\x74\x72\x4d\x61\x70\x5b\x67\x5d\x26\x26\x28\x61\x5b\x31\x5d\x3d\x6c\x2e\x61\x74\x74\x72\x4d\x61\x70\x5b\x67\x5d\x29\x2c\x61\x5b\x34\x5d\x3d\x28\x61\x5b\x34\x5d\x7c\x7c\x61\x5b\x35\x5d\x7c\x7c\x22\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x69\x2c\x22\x22\x29\x2c\x61\x5b\x32\x5d\x3d\x3d\x3d\x22\x7e\x3d\x22\x26\x26\x28\x61\x5b\x34\x5d\x3d\x22\x20\x22\x2b\x61\x5b\x34\x5d\x2b\x22\x20\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x2c\x50\x53\x45\x55\x44\x4f\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x2c\x63\x2c\x64\x2c\x65\x2c\x66\x29\x7b\x69\x66\x28\x62\x5b\x31\x5d\x3d\x3d\x3d\x22\x6e\x6f\x74\x22\x29\x69\x66\x28\x28\x61\x2e\x65\x78\x65\x63\x28\x62\x5b\x33\x5d\x29\x7c\x7c\x22\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x31\x7c\x7c\x2f\x5e\x5c\x77\x2f\x2e\x74\x65\x73\x74\x28\x62\x5b\x33\x5d\x29\x29\x62\x5b\x33\x5d\x3d\x6b\x28\x62\x5b\x33\x5d\x2c\x6e\x75\x6c\x6c\x2c\x6e\x75\x6c\x6c\x2c\x63\x29\x3b\x65\x6c\x73\x65\x7b\x76\x61\x72\x20\x67\x3d\x6b\x2e\x66\x69\x6c\x74\x65\x72\x28\x62\x5b\x33\x5d\x2c\x63\x2c\x64\x2c\x21\x30\x5e\x66\x29\x3b\x64\x7c\x7c\x65\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x65\x2c\x67\x29\x3b\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\x65\x6c\x73\x65\x20\x69\x66\x28\x6c\x2e\x6d\x61\x74\x63\x68\x2e\x50\x4f\x53\x2e\x74\x65\x73\x74\x28\x62\x5b\x30\x5d\x29\x7c\x7c\x6c\x2e\x6d\x61\x74\x63\x68\x2e\x43\x48\x49\x4c\x44\x2e\x74\x65\x73\x74\x28\x62\x5b\x30\x5d\x29\x29\x72\x65\x74\x75\x72\x6e\x21\x30\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x7d\x2c\x50\x4f\x53\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x61\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x21\x30\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x7d\x2c\x66\x69\x6c\x74\x65\x72\x73\x3a\x7b\x65\x6e\x61\x62\x6c\x65\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x64\x69\x73\x61\x62\x6c\x65\x64\x3d\x3d\x3d\x21\x31\x26\x26\x61\x2e\x74\x79\x70\x65\x21\x3d\x3d\x22\x68\x69\x64\x64\x65\x6e\x22\x7d\x2c\x64\x69\x73\x61\x62\x6c\x65\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x64\x69\x73\x61\x62\x6c\x65\x64\x3d\x3d\x3d\x21\x30\x7d\x2c\x63\x68\x65\x63\x6b\x65\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x63\x68\x65\x63\x6b\x65\x64\x3d\x3d\x3d\x21\x30\x7d\x2c\x73\x65\x6c\x65\x63\x74\x65\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x26\x26\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\x65\x78\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x3d\x3d\x3d\x21\x30\x7d\x2c\x70\x61\x72\x65\x6e\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x21\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x7d\x2c\x65\x6d\x70\x74\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x7d\x2c\x68\x61\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x21\x6b\x28\x63\x5b\x33\x5d\x2c\x61\x29\x2e\x6c\x65\x6e\x67\x74\x68\x7d\x2c\x68\x65\x61\x64\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x2f\x68\x5c\x64\x2f\x69\x2e\x74\x65\x73\x74\x28\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x7d\x2c\x74\x65\x78\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x79\x70\x65\x22\x29\x2c\x63\x3d\x61\x2e\x74\x79\x70\x65\x3b\x72\x65\x74\x75\x72\x6e\x22\x74\x65\x78\x74\x22\x3d\x3d\x3d\x63\x26\x26\x28\x62\x3d\x3d\x3d\x63\x7c\x7c\x62\x3d\x3d\x3d\x6e\x75\x6c\x6c\x29\x7d\x2c\x72\x61\x64\x69\x6f\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x22\x72\x61\x64\x69\x6f\x22\x3d\x3d\x3d\x61\x2e\x74\x79\x70\x65\x7d\x2c\x63\x68\x65\x63\x6b\x62\x6f\x78\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x22\x3d\x3d\x3d\x61\x2e\x74\x79\x70\x65\x7d\x2c\x66\x69\x6c\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x22\x66\x69\x6c\x65\x22\x3d\x3d\x3d\x61\x2e\x74\x79\x70\x65\x7d\x2c\x70\x61\x73\x73\x77\x6f\x72\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x22\x70\x61\x73\x73\x77\x6f\x72\x64\x22\x3d\x3d\x3d\x61\x2e\x74\x79\x70\x65\x7d\x2c\x73\x75\x62\x6d\x69\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x22\x73\x75\x62\x6d\x69\x74\x22\x3d\x3d\x3d\x61\x2e\x74\x79\x70\x65\x7d\x2c\x69\x6d\x61\x67\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x22\x69\x6d\x61\x67\x65\x22\x3d\x3d\x3d\x61\x2e\x74\x79\x70\x65\x7d\x2c\x72\x65\x73\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x22\x72\x65\x73\x65\x74\x22\x3d\x3d\x3d\x61\x2e\x74\x79\x70\x65\x7d\x2c\x62\x75\x74\x74\x6f\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x22\x62\x75\x74\x74\x6f\x6e\x22\x3d\x3d\x3d\x61\x2e\x74\x79\x70\x65\x7c\x7c\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x22\x62\x75\x74\x74\x6f\x6e\x22\x7d\x2c\x69\x6e\x70\x75\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x2f\x69\x6e\x70\x75\x74\x7c\x73\x65\x6c\x65\x63\x74\x7c\x74\x65\x78\x74\x61\x72\x65\x61\x7c\x62\x75\x74\x74\x6f\x6e\x2f\x69\x2e\x74\x65\x73\x74\x28\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x7d\x7d\x2c\x73\x65\x74\x46\x69\x6c\x74\x65\x72\x73\x3a\x7b\x66\x69\x72\x73\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x62\x3d\x3d\x3d\x30\x7d\x2c\x6c\x61\x73\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x62\x3d\x3d\x3d\x64\x2e\x6c\x65\x6e\x67\x74\x68\x2d\x31\x7d\x2c\x65\x76\x65\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x62\x25\x32\x3d\x3d\x3d\x30\x7d\x2c\x6f\x64\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x62\x25\x32\x3d\x3d\x3d\x31\x7d\x2c\x6c\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x62\x3c\x63\x5b\x33\x5d\x2d\x30\x7d\x2c\x67\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x62\x3e\x63\x5b\x33\x5d\x2d\x30\x7d\x2c\x6e\x74\x68\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x63\x5b\x33\x5d\x2d\x30\x3d\x3d\x3d\x62\x7d\x2c\x65\x71\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x63\x5b\x33\x5d\x2d\x30\x3d\x3d\x3d\x62\x7d\x7d\x2c\x66\x69\x6c\x74\x65\x72\x3a\x7b\x50\x53\x45\x55\x44\x4f\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x76\x61\x72\x20\x65\x3d\x62\x5b\x31\x5d\x2c\x66\x3d\x6c\x2e\x66\x69\x6c\x74\x65\x72\x73\x5b\x65\x5d\x3b\x69\x66\x28\x66\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x28\x61\x2c\x63\x2c\x62\x2c\x64\x29\x3b\x69\x66\x28\x65\x3d\x3d\x3d\x22\x63\x6f\x6e\x74\x61\x69\x6e\x73\x22\x29\x72\x65\x74\x75\x72\x6e\x28\x61\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x7c\x7c\x61\x2e\x69\x6e\x6e\x65\x72\x54\x65\x78\x74\x7c\x7c\x6b\x2e\x67\x65\x74\x54\x65\x78\x74\x28\x5b\x61\x5d\x29\x7c\x7c\x22\x22\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x62\x5b\x33\x5d\x29\x3e\x3d\x30\x3b\x69\x66\x28\x65\x3d\x3d\x3d\x22\x6e\x6f\x74\x22\x29\x7b\x76\x61\x72\x20\x67\x3d\x62\x5b\x33\x5d\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x68\x3d\x30\x2c\x69\x3d\x67\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x68\x3c\x69\x3b\x68\x2b\x2b\x29\x69\x66\x28\x67\x5b\x68\x5d\x3d\x3d\x3d\x61\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x3b\x72\x65\x74\x75\x72\x6e\x21\x30\x7d\x6b\x2e\x65\x72\x72\x6f\x72\x28\x65\x29\x7d\x2c\x43\x48\x49\x4c\x44\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x62\x5b\x31\x5d\x2c\x64\x3d\x61\x3b\x73\x77\x69\x74\x63\x68\x28\x63\x29\x7b\x63\x61\x73\x65\x22\x6f\x6e\x6c\x79\x22\x3a\x63\x61\x73\x65\x22\x66\x69\x72\x73\x74\x22\x3a\x77\x68\x69\x6c\x65\x28\x64\x3d\x64\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x53\x69\x62\x6c\x69\x6e\x67\x29\x69\x66\x28\x64\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x3b\x69\x66\x28\x63\x3d\x3d\x3d\x22\x66\x69\x72\x73\x74\x22\x29\x72\x65\x74\x75\x72\x6e\x21\x30\x3b\x64\x3d\x61\x3b\x63\x61\x73\x65\x22\x6c\x61\x73\x74\x22\x3a\x77\x68\x69\x6c\x65\x28\x64\x3d\x64\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x29\x69\x66\x28\x64\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x3b\x72\x65\x74\x75\x72\x6e\x21\x30\x3b\x63\x61\x73\x65\x22\x6e\x74\x68\x22\x3a\x76\x61\x72\x20\x65\x3d\x62\x5b\x32\x5d\x2c\x66\x3d\x62\x5b\x33\x5d\x3b\x69\x66\x28\x65\x3d\x3d\x3d\x31\x26\x26\x66\x3d\x3d\x3d\x30\x29\x72\x65\x74\x75\x72\x6e\x21\x30\x3b\x76\x61\x72\x20\x67\x3d\x62\x5b\x30\x5d\x2c\x68\x3d\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x69\x66\x28\x68\x26\x26\x28\x68\x2e\x73\x69\x7a\x63\x61\x63\x68\x65\x21\x3d\x3d\x67\x7c\x7c\x21\x61\x2e\x6e\x6f\x64\x65\x49\x6e\x64\x65\x78\x29\x29\x7b\x76\x61\x72\x20\x69\x3d\x30\x3b\x66\x6f\x72\x28\x64\x3d\x68\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x3b\x64\x3b\x64\x3d\x64\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x29\x64\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x28\x64\x2e\x6e\x6f\x64\x65\x49\x6e\x64\x65\x78\x3d\x2b\x2b\x69\x29\x3b\x68\x2e\x73\x69\x7a\x63\x61\x63\x68\x65\x3d\x67\x7d\x76\x61\x72\x20\x6a\x3d\x61\x2e\x6e\x6f\x64\x65\x49\x6e\x64\x65\x78\x2d\x66\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x3d\x3d\x3d\x30\x3f\x6a\x3d\x3d\x3d\x30\x3a\x6a\x25\x65\x3d\x3d\x3d\x30\x26\x26\x6a\x2f\x65\x3e\x3d\x30\x7d\x7d\x2c\x49\x44\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x64\x22\x29\x3d\x3d\x3d\x62\x7d\x2c\x54\x41\x47\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x62\x3d\x3d\x3d\x22\x2a\x22\x26\x26\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x7c\x7c\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x62\x7d\x2c\x43\x4c\x41\x53\x53\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x28\x22\x20\x22\x2b\x28\x61\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x7c\x7c\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6c\x61\x73\x73\x22\x29\x29\x2b\x22\x20\x22\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x62\x29\x3e\x2d\x31\x7d\x2c\x41\x54\x54\x52\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x62\x5b\x31\x5d\x2c\x64\x3d\x6c\x2e\x61\x74\x74\x72\x48\x61\x6e\x64\x6c\x65\x5b\x63\x5d\x3f\x6c\x2e\x61\x74\x74\x72\x48\x61\x6e\x64\x6c\x65\x5b\x63\x5d\x28\x61\x29\x3a\x61\x5b\x63\x5d\x21\x3d\x6e\x75\x6c\x6c\x3f\x61\x5b\x63\x5d\x3a\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x63\x29\x2c\x65\x3d\x64\x2b\x22\x22\x2c\x66\x3d\x62\x5b\x32\x5d\x2c\x67\x3d\x62\x5b\x34\x5d\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x3d\x3d\x6e\x75\x6c\x6c\x3f\x66\x3d\x3d\x3d\x22\x21\x3d\x22\x3a\x66\x3d\x3d\x3d\x22\x3d\x22\x3f\x65\x3d\x3d\x3d\x67\x3a\x66\x3d\x3d\x3d\x22\x2a\x3d\x22\x3f\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x67\x29\x3e\x3d\x30\x3a\x66\x3d\x3d\x3d\x22\x7e\x3d\x22\x3f\x28\x22\x20\x22\x2b\x65\x2b\x22\x20\x22\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x67\x29\x3e\x3d\x30\x3a\x67\x3f\x66\x3d\x3d\x3d\x22\x21\x3d\x22\x3f\x65\x21\x3d\x3d\x67\x3a\x66\x3d\x3d\x3d\x22\x5e\x3d\x22\x3f\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x67\x29\x3d\x3d\x3d\x30\x3a\x66\x3d\x3d\x3d\x22\x24\x3d\x22\x3f\x65\x2e\x73\x75\x62\x73\x74\x72\x28\x65\x2e\x6c\x65\x6e\x67\x74\x68\x2d\x67\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3d\x3d\x3d\x67\x3a\x66\x3d\x3d\x3d\x22\x7c\x3d\x22\x3f\x65\x3d\x3d\x3d\x67\x7c\x7c\x65\x2e\x73\x75\x62\x73\x74\x72\x28\x30\x2c\x67\x2e\x6c\x65\x6e\x67\x74\x68\x2b\x31\x29\x3d\x3d\x3d\x67\x2b\x22\x2d\x22\x3a\x21\x31\x3a\x65\x26\x26\x64\x21\x3d\x3d\x21\x31\x7d\x2c\x50\x4f\x53\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x76\x61\x72\x20\x65\x3d\x62\x5b\x32\x5d\x2c\x66\x3d\x6c\x2e\x73\x65\x74\x46\x69\x6c\x74\x65\x72\x73\x5b\x65\x5d\x3b\x69\x66\x28\x66\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x28\x61\x2c\x63\x2c\x62\x2c\x64\x29\x7d\x7d\x7d\x2c\x6d\x3d\x6c\x2e\x6d\x61\x74\x63\x68\x2e\x50\x4f\x53\x2c\x6e\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x22\x5c\x5c\x22\x2b\x28\x62\x2d\x30\x2b\x31\x29\x7d\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x6f\x20\x69\x6e\x20\x6c\x2e\x6d\x61\x74\x63\x68\x29\x6c\x2e\x6d\x61\x74\x63\x68\x5b\x6f\x5d\x3d\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x6c\x2e\x6d\x61\x74\x63\x68\x5b\x6f\x5d\x2e\x73\x6f\x75\x72\x63\x65\x2b\x2f\x28\x3f\x21\x5b\x5e\x5c\x5b\x5d\x2a\x5c\x5d\x29\x28\x3f\x21\x5b\x5e\x5c\x28\x5d\x2a\x5c\x29\x29\x2f\x2e\x73\x6f\x75\x72\x63\x65\x29\x2c\x6c\x2e\x6c\x65\x66\x74\x4d\x61\x74\x63\x68\x5b\x6f\x5d\x3d\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x2f\x28\x5e\x28\x3f\x3a\x2e\x7c\x5c\x72\x7c\x5c\x6e\x29\x2a\x3f\x29\x2f\x2e\x73\x6f\x75\x72\x63\x65\x2b\x6c\x2e\x6d\x61\x74\x63\x68\x5b\x6f\x5d\x2e\x73\x6f\x75\x72\x63\x65\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x5c\x28\x5c\x64\x2b\x29\x2f\x67\x2c\x6e\x29\x29\x3b\x76\x61\x72\x20\x70\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x61\x3d\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x6c\x69\x63\x65\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x30\x29\x3b\x69\x66\x28\x62\x29\x7b\x62\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x62\x2c\x61\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x7d\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x3b\x74\x72\x79\x7b\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x6c\x69\x63\x65\x2e\x63\x61\x6c\x6c\x28\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x2c\x30\x29\x5b\x30\x5d\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x7d\x63\x61\x74\x63\x68\x28\x71\x29\x7b\x70\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x30\x2c\x64\x3d\x62\x7c\x7c\x5b\x5d\x3b\x69\x66\x28\x66\x2e\x63\x61\x6c\x6c\x28\x61\x29\x3d\x3d\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x41\x72\x72\x61\x79\x5d\x22\x29\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x64\x2c\x61\x29\x3b\x65\x6c\x73\x65\x20\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x66\x6f\x72\x28\x76\x61\x72\x20\x65\x3d\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x63\x3c\x65\x3b\x63\x2b\x2b\x29\x64\x2e\x70\x75\x73\x68\x28\x61\x5b\x63\x5d\x29\x3b\x65\x6c\x73\x65\x20\x66\x6f\x72\x28\x3b\x61\x5b\x63\x5d\x3b\x63\x2b\x2b\x29\x64\x2e\x70\x75\x73\x68\x28\x61\x5b\x63\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x7d\x7d\x76\x61\x72\x20\x72\x2c\x73\x3b\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x63\x6f\x6d\x70\x61\x72\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3f\x72\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x61\x3d\x3d\x3d\x62\x29\x7b\x67\x3d\x21\x30\x3b\x72\x65\x74\x75\x72\x6e\x20\x30\x7d\x69\x66\x28\x21\x61\x2e\x63\x6f\x6d\x70\x61\x72\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x7c\x7c\x21\x62\x2e\x63\x6f\x6d\x70\x61\x72\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x29\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x63\x6f\x6d\x70\x61\x72\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3f\x2d\x31\x3a\x31\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x63\x6f\x6d\x70\x61\x72\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x28\x62\x29\x26\x34\x3f\x2d\x31\x3a\x31\x7d\x3a\x28\x72\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x2c\x64\x2c\x65\x3d\x5b\x5d\x2c\x66\x3d\x5b\x5d\x2c\x68\x3d\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x69\x3d\x62\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x6a\x3d\x68\x3b\x69\x66\x28\x61\x3d\x3d\x3d\x62\x29\x7b\x67\x3d\x21\x30\x3b\x72\x65\x74\x75\x72\x6e\x20\x30\x7d\x69\x66\x28\x68\x3d\x3d\x3d\x69\x29\x72\x65\x74\x75\x72\x6e\x20\x73\x28\x61\x2c\x62\x29\x3b\x69\x66\x28\x21\x68\x29\x72\x65\x74\x75\x72\x6e\x2d\x31\x3b\x69\x66\x28\x21\x69\x29\x72\x65\x74\x75\x72\x6e\x20\x31\x3b\x77\x68\x69\x6c\x65\x28\x6a\x29\x65\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x6a\x29\x2c\x6a\x3d\x6a\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x6a\x3d\x69\x3b\x77\x68\x69\x6c\x65\x28\x6a\x29\x66\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x6a\x29\x2c\x6a\x3d\x6a\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x63\x3d\x65\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x64\x3d\x66\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x6b\x3d\x30\x3b\x6b\x3c\x63\x26\x26\x6b\x3c\x64\x3b\x6b\x2b\x2b\x29\x69\x66\x28\x65\x5b\x6b\x5d\x21\x3d\x3d\x66\x5b\x6b\x5d\x29\x72\x65\x74\x75\x72\x6e\x20\x73\x28\x65\x5b\x6b\x5d\x2c\x66\x5b\x6b\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x6b\x3d\x3d\x3d\x63\x3f\x73\x28\x61\x2c\x66\x5b\x6b\x5d\x2c\x2d\x31\x29\x3a\x73\x28\x65\x5b\x6b\x5d\x2c\x62\x2c\x31\x29\x7d\x2c\x73\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x69\x66\x28\x61\x3d\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x63\x3b\x76\x61\x72\x20\x64\x3d\x61\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x3b\x77\x68\x69\x6c\x65\x28\x64\x29\x7b\x69\x66\x28\x64\x3d\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x2d\x31\x3b\x64\x3d\x64\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x7d\x72\x65\x74\x75\x72\x6e\x20\x31\x7d\x29\x2c\x6b\x2e\x67\x65\x74\x54\x65\x78\x74\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x22\x22\x2c\x63\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x64\x3d\x30\x3b\x61\x5b\x64\x5d\x3b\x64\x2b\x2b\x29\x63\x3d\x61\x5b\x64\x5d\x2c\x63\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x33\x7c\x7c\x63\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x34\x3f\x62\x2b\x3d\x63\x2e\x6e\x6f\x64\x65\x56\x61\x6c\x75\x65\x3a\x63\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x38\x26\x26\x28\x62\x2b\x3d\x6b\x2e\x67\x65\x74\x54\x65\x78\x74\x28\x63\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x7d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x2c\x64\x3d\x22\x73\x63\x72\x69\x70\x74\x22\x2b\x28\x6e\x65\x77\x20\x44\x61\x74\x65\x29\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\x2c\x65\x3d\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x61\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x22\x3c\x61\x20\x6e\x61\x6d\x65\x3d\x27\x22\x2b\x64\x2b\x22\x27\x2f\x3e\x22\x2c\x65\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x61\x2c\x65\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x2c\x63\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x28\x64\x29\x26\x26\x28\x6c\x2e\x66\x69\x6e\x64\x2e\x49\x44\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x64\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x63\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x21\x3d\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x26\x26\x21\x64\x29\x7b\x76\x61\x72\x20\x65\x3d\x63\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x28\x61\x5b\x31\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x3f\x65\x2e\x69\x64\x3d\x3d\x3d\x61\x5b\x31\x5d\x7c\x7c\x74\x79\x70\x65\x6f\x66\x20\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\x21\x3d\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x26\x26\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\x28\x22\x69\x64\x22\x29\x2e\x6e\x6f\x64\x65\x56\x61\x6c\x75\x65\x3d\x3d\x3d\x61\x5b\x31\x5d\x3f\x5b\x65\x5d\x3a\x62\x3a\x5b\x5d\x7d\x7d\x2c\x6c\x2e\x66\x69\x6c\x74\x65\x72\x2e\x49\x44\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x74\x79\x70\x65\x6f\x66\x20\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\x21\x3d\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x26\x26\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\x28\x22\x69\x64\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x63\x26\x26\x63\x2e\x6e\x6f\x64\x65\x56\x61\x6c\x75\x65\x3d\x3d\x3d\x62\x7d\x29\x2c\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x61\x29\x2c\x65\x3d\x61\x3d\x6e\x75\x6c\x6c\x7d\x28\x29\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x3b\x61\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x63\x2e\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x22\x22\x29\x29\x2c\x61\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x2a\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x30\x26\x26\x28\x6c\x2e\x66\x69\x6e\x64\x2e\x54\x41\x47\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x61\x5b\x31\x5d\x29\x3b\x69\x66\x28\x61\x5b\x31\x5d\x3d\x3d\x3d\x22\x2a\x22\x29\x7b\x76\x61\x72\x20\x64\x3d\x5b\x5d\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x65\x3d\x30\x3b\x63\x5b\x65\x5d\x3b\x65\x2b\x2b\x29\x63\x5b\x65\x5d\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x64\x2e\x70\x75\x73\x68\x28\x63\x5b\x65\x5d\x29\x3b\x63\x3d\x64\x7d\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x29\x2c\x61\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x22\x3c\x61\x20\x68\x72\x65\x66\x3d\x27\x23\x27\x3e\x3c\x2f\x61\x3e\x22\x2c\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x26\x26\x74\x79\x70\x65\x6f\x66\x20\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x21\x3d\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x26\x26\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x68\x72\x65\x66\x22\x29\x21\x3d\x3d\x22\x23\x22\x26\x26\x28\x6c\x2e\x61\x74\x74\x72\x48\x61\x6e\x64\x6c\x65\x2e\x68\x72\x65\x66\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x68\x72\x65\x66\x22\x2c\x32\x29\x7d\x29\x2c\x61\x3d\x6e\x75\x6c\x6c\x7d\x28\x29\x2c\x63\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x26\x26\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x6b\x2c\x62\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x2c\x64\x3d\x22\x5f\x5f\x73\x69\x7a\x7a\x6c\x65\x5f\x5f\x22\x3b\x62\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x22\x3c\x70\x20\x63\x6c\x61\x73\x73\x3d\x27\x54\x45\x53\x54\x27\x3e\x3c\x2f\x70\x3e\x22\x3b\x69\x66\x28\x21\x62\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x7c\x7c\x62\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x54\x45\x53\x54\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x21\x3d\x3d\x30\x29\x7b\x6b\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x2c\x65\x2c\x66\x2c\x67\x29\x7b\x65\x3d\x65\x7c\x7c\x63\x3b\x69\x66\x28\x21\x67\x26\x26\x21\x6b\x2e\x69\x73\x58\x4d\x4c\x28\x65\x29\x29\x7b\x76\x61\x72\x20\x68\x3d\x2f\x5e\x28\x5c\x77\x2b\x24\x29\x7c\x5e\x5c\x2e\x28\x5b\x5c\x77\x5c\x2d\x5d\x2b\x24\x29\x7c\x5e\x23\x28\x5b\x5c\x77\x5c\x2d\x5d\x2b\x24\x29\x2f\x2e\x65\x78\x65\x63\x28\x62\x29\x3b\x69\x66\x28\x68\x26\x26\x28\x65\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x7c\x7c\x65\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x39\x29\x29\x7b\x69\x66\x28\x68\x5b\x31\x5d\x29\x72\x65\x74\x75\x72\x6e\x20\x70\x28\x65\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x62\x29\x2c\x66\x29\x3b\x69\x66\x28\x68\x5b\x32\x5d\x26\x26\x6c\x2e\x66\x69\x6e\x64\x2e\x43\x4c\x41\x53\x53\x26\x26\x65\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x29\x72\x65\x74\x75\x72\x6e\x20\x70\x28\x65\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x28\x68\x5b\x32\x5d\x29\x2c\x66\x29\x7d\x69\x66\x28\x65\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x39\x29\x7b\x69\x66\x28\x62\x3d\x3d\x3d\x22\x62\x6f\x64\x79\x22\x26\x26\x65\x2e\x62\x6f\x64\x79\x29\x72\x65\x74\x75\x72\x6e\x20\x70\x28\x5b\x65\x2e\x62\x6f\x64\x79\x5d\x2c\x66\x29\x3b\x69\x66\x28\x68\x26\x26\x68\x5b\x33\x5d\x29\x7b\x76\x61\x72\x20\x69\x3d\x65\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x28\x68\x5b\x33\x5d\x29\x3b\x69\x66\x28\x21\x69\x7c\x7c\x21\x69\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x72\x65\x74\x75\x72\x6e\x20\x70\x28\x5b\x5d\x2c\x66\x29\x3b\x69\x66\x28\x69\x2e\x69\x64\x3d\x3d\x3d\x68\x5b\x33\x5d\x29\x72\x65\x74\x75\x72\x6e\x20\x70\x28\x5b\x69\x5d\x2c\x66\x29\x7d\x74\x72\x79\x7b\x72\x65\x74\x75\x72\x6e\x20\x70\x28\x65\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x62\x29\x2c\x66\x29\x7d\x63\x61\x74\x63\x68\x28\x6a\x29\x7b\x7d\x7d\x65\x6c\x73\x65\x20\x69\x66\x28\x65\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x65\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x21\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x7b\x76\x61\x72\x20\x6d\x3d\x65\x2c\x6e\x3d\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x64\x22\x29\x2c\x6f\x3d\x6e\x7c\x7c\x64\x2c\x71\x3d\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x72\x3d\x2f\x5e\x5c\x73\x2a\x5b\x2b\x7e\x5d\x2f\x2e\x74\x65\x73\x74\x28\x62\x29\x3b\x6e\x3f\x6f\x3d\x6f\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x27\x2f\x67\x2c\x22\x5c\x5c\x24\x26\x22\x29\x3a\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x64\x22\x2c\x6f\x29\x2c\x72\x26\x26\x71\x26\x26\x28\x65\x3d\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x3b\x74\x72\x79\x7b\x69\x66\x28\x21\x72\x7c\x7c\x71\x29\x72\x65\x74\x75\x72\x6e\x20\x70\x28\x65\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x5b\x69\x64\x3d\x27\x22\x2b\x6f\x2b\x22\x27\x5d\x20\x22\x2b\x62\x29\x2c\x66\x29\x7d\x63\x61\x74\x63\x68\x28\x73\x29\x7b\x7d\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x6e\x7c\x7c\x6d\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x64\x22\x29\x7d\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x61\x28\x62\x2c\x65\x2c\x66\x2c\x67\x29\x7d\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x65\x20\x69\x6e\x20\x61\x29\x6b\x5b\x65\x5d\x3d\x61\x5b\x65\x5d\x3b\x62\x3d\x6e\x75\x6c\x6c\x7d\x7d\x28\x29\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x62\x3d\x61\x2e\x6d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x7c\x7c\x61\x2e\x6d\x6f\x7a\x4d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x7c\x7c\x61\x2e\x77\x65\x62\x6b\x69\x74\x4d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x7c\x7c\x61\x2e\x6d\x73\x4d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x3b\x69\x66\x28\x62\x29\x7b\x76\x61\x72\x20\x64\x3d\x21\x62\x2e\x63\x61\x6c\x6c\x28\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x2c\x22\x64\x69\x76\x22\x29\x2c\x65\x3d\x21\x31\x3b\x74\x72\x79\x7b\x62\x2e\x63\x61\x6c\x6c\x28\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x22\x5b\x74\x65\x73\x74\x21\x3d\x27\x27\x5d\x3a\x73\x69\x7a\x7a\x6c\x65\x22\x29\x7d\x63\x61\x74\x63\x68\x28\x66\x29\x7b\x65\x3d\x21\x30\x7d\x6b\x2e\x6d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x63\x3d\x63\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x3d\x5c\x73\x2a\x28\x5b\x5e\x27\x22\x5c\x5d\x5d\x2a\x29\x5c\x73\x2a\x5c\x5d\x2f\x67\x2c\x22\x3d\x27\x24\x31\x27\x5d\x22\x29\x3b\x69\x66\x28\x21\x6b\x2e\x69\x73\x58\x4d\x4c\x28\x61\x29\x29\x74\x72\x79\x7b\x69\x66\x28\x65\x7c\x7c\x21\x6c\x2e\x6d\x61\x74\x63\x68\x2e\x50\x53\x45\x55\x44\x4f\x2e\x74\x65\x73\x74\x28\x63\x29\x26\x26\x21\x2f\x21\x3d\x2f\x2e\x74\x65\x73\x74\x28\x63\x29\x29\x7b\x76\x61\x72\x20\x66\x3d\x62\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x63\x29\x3b\x69\x66\x28\x66\x7c\x7c\x21\x64\x7c\x7c\x61\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x26\x26\x61\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x31\x31\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x7d\x7d\x63\x61\x74\x63\x68\x28\x67\x29\x7b\x7d\x72\x65\x74\x75\x72\x6e\x20\x6b\x28\x63\x2c\x6e\x75\x6c\x6c\x2c\x6e\x75\x6c\x6c\x2c\x5b\x61\x5d\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x30\x7d\x7d\x7d\x28\x29\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x3b\x61\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x22\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x74\x65\x73\x74\x20\x65\x27\x3e\x3c\x2f\x64\x69\x76\x3e\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x74\x65\x73\x74\x27\x3e\x3c\x2f\x64\x69\x76\x3e\x22\x3b\x69\x66\x28\x61\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x26\x26\x61\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x28\x22\x65\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x21\x3d\x3d\x30\x29\x7b\x61\x2e\x6c\x61\x73\x74\x43\x68\x69\x6c\x64\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x3d\x22\x65\x22\x3b\x69\x66\x28\x61\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x28\x22\x65\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x29\x72\x65\x74\x75\x72\x6e\x3b\x6c\x2e\x6f\x72\x64\x65\x72\x2e\x73\x70\x6c\x69\x63\x65\x28\x31\x2c\x30\x2c\x22\x43\x4c\x41\x53\x53\x22\x29\x2c\x6c\x2e\x66\x69\x6e\x64\x2e\x43\x4c\x41\x53\x53\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x21\x3d\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x26\x26\x21\x63\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x28\x61\x5b\x31\x5d\x29\x7d\x2c\x61\x3d\x6e\x75\x6c\x6c\x7d\x7d\x28\x29\x2c\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x3f\x6b\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x21\x3d\x3d\x62\x26\x26\x28\x61\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x3f\x61\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x62\x29\x3a\x21\x30\x29\x7d\x3a\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x63\x6f\x6d\x70\x61\x72\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3f\x6b\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x21\x28\x61\x2e\x63\x6f\x6d\x70\x61\x72\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x28\x62\x29\x26\x31\x36\x29\x7d\x3a\x6b\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\x2c\x6b\x2e\x69\x73\x58\x4d\x4c\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x28\x61\x3f\x61\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x61\x3a\x30\x29\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x3f\x62\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x21\x3d\x3d\x22\x48\x54\x4d\x4c\x22\x3a\x21\x31\x7d\x3b\x76\x61\x72\x20\x76\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x2c\x64\x3d\x5b\x5d\x2c\x65\x3d\x22\x22\x2c\x66\x3d\x62\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3f\x5b\x62\x5d\x3a\x62\x3b\x77\x68\x69\x6c\x65\x28\x63\x3d\x6c\x2e\x6d\x61\x74\x63\x68\x2e\x50\x53\x45\x55\x44\x4f\x2e\x65\x78\x65\x63\x28\x61\x29\x29\x65\x2b\x3d\x63\x5b\x30\x5d\x2c\x61\x3d\x61\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6c\x2e\x6d\x61\x74\x63\x68\x2e\x50\x53\x45\x55\x44\x4f\x2c\x22\x22\x29\x3b\x61\x3d\x6c\x2e\x72\x65\x6c\x61\x74\x69\x76\x65\x5b\x61\x5d\x3f\x61\x2b\x22\x2a\x22\x3a\x61\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x67\x3d\x30\x2c\x68\x3d\x66\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x67\x3c\x68\x3b\x67\x2b\x2b\x29\x6b\x28\x61\x2c\x66\x5b\x67\x5d\x2c\x64\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x6b\x2e\x66\x69\x6c\x74\x65\x72\x28\x65\x2c\x64\x29\x7d\x3b\x64\x2e\x66\x69\x6e\x64\x3d\x6b\x2c\x64\x2e\x65\x78\x70\x72\x3d\x6b\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x73\x2c\x64\x2e\x65\x78\x70\x72\x5b\x22\x3a\x22\x5d\x3d\x64\x2e\x65\x78\x70\x72\x2e\x66\x69\x6c\x74\x65\x72\x73\x2c\x64\x2e\x75\x6e\x69\x71\x75\x65\x3d\x6b\x2e\x75\x6e\x69\x71\x75\x65\x53\x6f\x72\x74\x2c\x64\x2e\x74\x65\x78\x74\x3d\x6b\x2e\x67\x65\x74\x54\x65\x78\x74\x2c\x64\x2e\x69\x73\x58\x4d\x4c\x44\x6f\x63\x3d\x6b\x2e\x69\x73\x58\x4d\x4c\x2c\x64\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x3d\x6b\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x7d\x28\x29\x3b\x76\x61\x72\x20\x49\x3d\x2f\x55\x6e\x74\x69\x6c\x24\x2f\x2c\x4a\x3d\x2f\x5e\x28\x3f\x3a\x70\x61\x72\x65\x6e\x74\x73\x7c\x70\x72\x65\x76\x55\x6e\x74\x69\x6c\x7c\x70\x72\x65\x76\x41\x6c\x6c\x29\x2f\x2c\x4b\x3d\x2f\x2c\x2f\x2c\x4c\x3d\x2f\x5e\x2e\x5b\x5e\x3a\x23\x5c\x5b\x5c\x2e\x2c\x5d\x2a\x24\x2f\x2c\x4d\x3d\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x6c\x69\x63\x65\x2c\x4e\x3d\x64\x2e\x65\x78\x70\x72\x2e\x6d\x61\x74\x63\x68\x2e\x50\x4f\x53\x2c\x4f\x3d\x7b\x63\x68\x69\x6c\x64\x72\x65\x6e\x3a\x21\x30\x2c\x63\x6f\x6e\x74\x65\x6e\x74\x73\x3a\x21\x30\x2c\x6e\x65\x78\x74\x3a\x21\x30\x2c\x70\x72\x65\x76\x3a\x21\x30\x7d\x3b\x64\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x66\x69\x6e\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x22\x22\x2c\x22\x66\x69\x6e\x64\x22\x2c\x61\x29\x2c\x63\x3d\x30\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x65\x3d\x30\x2c\x66\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x65\x3c\x66\x3b\x65\x2b\x2b\x29\x7b\x63\x3d\x62\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x64\x2e\x66\x69\x6e\x64\x28\x61\x2c\x74\x68\x69\x73\x5b\x65\x5d\x2c\x62\x29\x3b\x69\x66\x28\x65\x3e\x30\x29\x66\x6f\x72\x28\x76\x61\x72\x20\x67\x3d\x63\x3b\x67\x3c\x62\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x67\x2b\x2b\x29\x66\x6f\x72\x28\x76\x61\x72\x20\x68\x3d\x30\x3b\x68\x3c\x63\x3b\x68\x2b\x2b\x29\x69\x66\x28\x62\x5b\x68\x5d\x3d\x3d\x3d\x62\x5b\x67\x5d\x29\x7b\x62\x2e\x73\x70\x6c\x69\x63\x65\x28\x67\x2d\x2d\x2c\x31\x29\x3b\x62\x72\x65\x61\x6b\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x62\x7d\x2c\x68\x61\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x64\x28\x61\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x61\x3d\x30\x2c\x63\x3d\x62\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x61\x3c\x63\x3b\x61\x2b\x2b\x29\x69\x66\x28\x64\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x74\x68\x69\x73\x2c\x62\x5b\x61\x5d\x29\x29\x72\x65\x74\x75\x72\x6e\x21\x30\x7d\x29\x7d\x2c\x6e\x6f\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x51\x28\x74\x68\x69\x73\x2c\x61\x2c\x21\x31\x29\x2c\x22\x6e\x6f\x74\x22\x2c\x61\x29\x7d\x2c\x66\x69\x6c\x74\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x51\x28\x74\x68\x69\x73\x2c\x61\x2c\x21\x30\x29\x2c\x22\x66\x69\x6c\x74\x65\x72\x22\x2c\x61\x29\x7d\x2c\x69\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x21\x61\x26\x26\x64\x2e\x66\x69\x6c\x74\x65\x72\x28\x61\x2c\x74\x68\x69\x73\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x30\x7d\x2c\x63\x6c\x6f\x73\x65\x73\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x5b\x5d\x2c\x65\x2c\x66\x2c\x67\x3d\x74\x68\x69\x73\x5b\x30\x5d\x3b\x69\x66\x28\x64\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x61\x29\x29\x7b\x76\x61\x72\x20\x68\x2c\x69\x2c\x6a\x3d\x7b\x7d\x2c\x6b\x3d\x31\x3b\x69\x66\x28\x67\x26\x26\x61\x2e\x6c\x65\x6e\x67\x74\x68\x29\x7b\x66\x6f\x72\x28\x65\x3d\x30\x2c\x66\x3d\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x65\x3c\x66\x3b\x65\x2b\x2b\x29\x69\x3d\x61\x5b\x65\x5d\x2c\x6a\x5b\x69\x5d\x7c\x7c\x28\x6a\x5b\x69\x5d\x3d\x64\x2e\x65\x78\x70\x72\x2e\x6d\x61\x74\x63\x68\x2e\x50\x4f\x53\x2e\x74\x65\x73\x74\x28\x69\x29\x3f\x64\x28\x69\x2c\x62\x7c\x7c\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x78\x74\x29\x3a\x69\x29\x3b\x77\x68\x69\x6c\x65\x28\x67\x26\x26\x67\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x26\x26\x67\x21\x3d\x3d\x62\x29\x7b\x66\x6f\x72\x28\x69\x20\x69\x6e\x20\x6a\x29\x68\x3d\x6a\x5b\x69\x5d\x2c\x28\x68\x2e\x6a\x71\x75\x65\x72\x79\x3f\x68\x2e\x69\x6e\x64\x65\x78\x28\x67\x29\x3e\x2d\x31\x3a\x64\x28\x67\x29\x2e\x69\x73\x28\x68\x29\x29\x26\x26\x63\x2e\x70\x75\x73\x68\x28\x7b\x73\x65\x6c\x65\x63\x74\x6f\x72\x3a\x69\x2c\x65\x6c\x65\x6d\x3a\x67\x2c\x6c\x65\x76\x65\x6c\x3a\x6b\x7d\x29\x3b\x67\x3d\x67\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x6b\x2b\x2b\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x76\x61\x72\x20\x6c\x3d\x4e\x2e\x74\x65\x73\x74\x28\x61\x29\x3f\x64\x28\x61\x2c\x62\x7c\x7c\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x78\x74\x29\x3a\x6e\x75\x6c\x6c\x3b\x66\x6f\x72\x28\x65\x3d\x30\x2c\x66\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x65\x3c\x66\x3b\x65\x2b\x2b\x29\x7b\x67\x3d\x74\x68\x69\x73\x5b\x65\x5d\x3b\x77\x68\x69\x6c\x65\x28\x67\x29\x7b\x69\x66\x28\x6c\x3f\x6c\x2e\x69\x6e\x64\x65\x78\x28\x67\x29\x3e\x2d\x31\x3a\x64\x2e\x66\x69\x6e\x64\x2e\x6d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x67\x2c\x61\x29\x29\x7b\x63\x2e\x70\x75\x73\x68\x28\x67\x29\x3b\x62\x72\x65\x61\x6b\x7d\x67\x3d\x67\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x69\x66\x28\x21\x67\x7c\x7c\x21\x67\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x67\x3d\x3d\x3d\x62\x29\x62\x72\x65\x61\x6b\x7d\x7d\x63\x3d\x63\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x31\x3f\x64\x2e\x75\x6e\x69\x71\x75\x65\x28\x63\x29\x3a\x63\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x63\x2c\x22\x63\x6c\x6f\x73\x65\x73\x74\x22\x2c\x61\x29\x7d\x2c\x69\x6e\x64\x65\x78\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x21\x61\x7c\x7c\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x69\x6e\x41\x72\x72\x61\x79\x28\x74\x68\x69\x73\x5b\x30\x5d\x2c\x61\x3f\x64\x28\x61\x29\x3a\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x28\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x69\x6e\x41\x72\x72\x61\x79\x28\x61\x2e\x6a\x71\x75\x65\x72\x79\x3f\x61\x5b\x30\x5d\x3a\x61\x2c\x74\x68\x69\x73\x29\x7d\x2c\x61\x64\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x3f\x64\x28\x61\x2c\x62\x29\x3a\x64\x2e\x6d\x61\x6b\x65\x41\x72\x72\x61\x79\x28\x61\x29\x2c\x65\x3d\x64\x2e\x6d\x65\x72\x67\x65\x28\x74\x68\x69\x73\x2e\x67\x65\x74\x28\x29\x2c\x63\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x50\x28\x63\x5b\x30\x5d\x29\x7c\x7c\x50\x28\x65\x5b\x30\x5d\x29\x3f\x65\x3a\x64\x2e\x75\x6e\x69\x71\x75\x65\x28\x65\x29\x29\x7d\x2c\x61\x6e\x64\x53\x65\x6c\x66\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x4f\x62\x6a\x65\x63\x74\x29\x7d\x7d\x29\x2c\x64\x2e\x65\x61\x63\x68\x28\x7b\x70\x61\x72\x65\x6e\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x26\x26\x62\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x31\x31\x3f\x62\x3a\x6e\x75\x6c\x6c\x7d\x2c\x70\x61\x72\x65\x6e\x74\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x64\x69\x72\x28\x61\x2c\x22\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x22\x29\x7d\x2c\x70\x61\x72\x65\x6e\x74\x73\x55\x6e\x74\x69\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x64\x69\x72\x28\x61\x2c\x22\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x22\x2c\x63\x29\x7d\x2c\x6e\x65\x78\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x6e\x74\x68\x28\x61\x2c\x32\x2c\x22\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x22\x29\x7d\x2c\x70\x72\x65\x76\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x6e\x74\x68\x28\x61\x2c\x32\x2c\x22\x70\x72\x65\x76\x69\x6f\x75\x73\x53\x69\x62\x6c\x69\x6e\x67\x22\x29\x7d\x2c\x6e\x65\x78\x74\x41\x6c\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x64\x69\x72\x28\x61\x2c\x22\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x22\x29\x7d\x2c\x70\x72\x65\x76\x41\x6c\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x64\x69\x72\x28\x61\x2c\x22\x70\x72\x65\x76\x69\x6f\x75\x73\x53\x69\x62\x6c\x69\x6e\x67\x22\x29\x7d\x2c\x6e\x65\x78\x74\x55\x6e\x74\x69\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x64\x69\x72\x28\x61\x2c\x22\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x22\x2c\x63\x29\x7d\x2c\x70\x72\x65\x76\x55\x6e\x74\x69\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x64\x69\x72\x28\x61\x2c\x22\x70\x72\x65\x76\x69\x6f\x75\x73\x53\x69\x62\x6c\x69\x6e\x67\x22\x2c\x63\x29\x7d\x2c\x73\x69\x62\x6c\x69\x6e\x67\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x73\x69\x62\x6c\x69\x6e\x67\x28\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2c\x61\x29\x7d\x2c\x63\x68\x69\x6c\x64\x72\x65\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x73\x69\x62\x6c\x69\x6e\x67\x28\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x7d\x2c\x63\x6f\x6e\x74\x65\x6e\x74\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x61\x2c\x22\x69\x66\x72\x61\x6d\x65\x22\x29\x3f\x61\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x44\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x61\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x57\x69\x6e\x64\x6f\x77\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x3a\x64\x2e\x6d\x61\x6b\x65\x41\x72\x72\x61\x79\x28\x61\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x29\x7d\x7d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x64\x2e\x66\x6e\x5b\x61\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x3d\x64\x2e\x6d\x61\x70\x28\x74\x68\x69\x73\x2c\x62\x2c\x63\x29\x2c\x67\x3d\x4d\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x49\x2e\x74\x65\x73\x74\x28\x61\x29\x7c\x7c\x28\x65\x3d\x63\x29\x2c\x65\x26\x26\x74\x79\x70\x65\x6f\x66\x20\x65\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x66\x3d\x64\x2e\x66\x69\x6c\x74\x65\x72\x28\x65\x2c\x66\x29\x29\x2c\x66\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x31\x26\x26\x21\x4f\x5b\x61\x5d\x3f\x64\x2e\x75\x6e\x69\x71\x75\x65\x28\x66\x29\x3a\x66\x2c\x28\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x31\x7c\x7c\x4b\x2e\x74\x65\x73\x74\x28\x65\x29\x29\x26\x26\x4a\x2e\x74\x65\x73\x74\x28\x61\x29\x26\x26\x28\x66\x3d\x66\x2e\x72\x65\x76\x65\x72\x73\x65\x28\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x66\x2c\x61\x2c\x67\x2e\x6a\x6f\x69\x6e\x28\x22\x2c\x22\x29\x29\x7d\x7d\x29\x2c\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x66\x69\x6c\x74\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x63\x26\x26\x28\x61\x3d\x22\x3a\x6e\x6f\x74\x28\x22\x2b\x61\x2b\x22\x29\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x3f\x64\x2e\x66\x69\x6e\x64\x2e\x6d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x62\x5b\x30\x5d\x2c\x61\x29\x3f\x5b\x62\x5b\x30\x5d\x5d\x3a\x5b\x5d\x3a\x64\x2e\x66\x69\x6e\x64\x2e\x6d\x61\x74\x63\x68\x65\x73\x28\x61\x2c\x62\x29\x7d\x2c\x64\x69\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x3d\x5b\x5d\x2c\x67\x3d\x61\x5b\x63\x5d\x3b\x77\x68\x69\x6c\x65\x28\x67\x26\x26\x67\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x39\x26\x26\x28\x65\x3d\x3d\x3d\x62\x7c\x7c\x67\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x31\x7c\x7c\x21\x64\x28\x67\x29\x2e\x69\x73\x28\x65\x29\x29\x29\x67\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x66\x2e\x70\x75\x73\x68\x28\x67\x29\x2c\x67\x3d\x67\x5b\x63\x5d\x3b\x72\x65\x74\x75\x72\x6e\x20\x66\x7d\x2c\x6e\x74\x68\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x62\x3d\x62\x7c\x7c\x31\x3b\x76\x61\x72\x20\x65\x3d\x30\x3b\x66\x6f\x72\x28\x3b\x61\x3b\x61\x3d\x61\x5b\x63\x5d\x29\x69\x66\x28\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x2b\x2b\x65\x3d\x3d\x3d\x62\x29\x62\x72\x65\x61\x6b\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x2c\x73\x69\x62\x6c\x69\x6e\x67\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x5b\x5d\x3b\x66\x6f\x72\x28\x3b\x61\x3b\x61\x3d\x61\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x29\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x61\x21\x3d\x3d\x62\x26\x26\x63\x2e\x70\x75\x73\x68\x28\x61\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x7d\x29\x3b\x76\x61\x72\x20\x52\x3d\x2f\x20\x6a\x51\x75\x65\x72\x79\x5c\x64\x2b\x3d\x22\x28\x3f\x3a\x5c\x64\x2b\x7c\x6e\x75\x6c\x6c\x29\x22\x2f\x67\x2c\x53\x3d\x2f\x5e\x5c\x73\x2b\x2f\x2c\x54\x3d\x2f\x3c\x28\x3f\x21\x61\x72\x65\x61\x7c\x62\x72\x7c\x63\x6f\x6c\x7c\x65\x6d\x62\x65\x64\x7c\x68\x72\x7c\x69\x6d\x67\x7c\x69\x6e\x70\x75\x74\x7c\x6c\x69\x6e\x6b\x7c\x6d\x65\x74\x61\x7c\x70\x61\x72\x61\x6d\x29\x28\x28\x5b\x5c\x77\x3a\x5d\x2b\x29\x5b\x5e\x3e\x5d\x2a\x29\x5c\x2f\x3e\x2f\x69\x67\x2c\x55\x3d\x2f\x3c\x28\x5b\x5c\x77\x3a\x5d\x2b\x29\x2f\x2c\x56\x3d\x2f\x3c\x74\x62\x6f\x64\x79\x2f\x69\x2c\x57\x3d\x2f\x3c\x7c\x26\x23\x3f\x5c\x77\x2b\x3b\x2f\x2c\x58\x3d\x2f\x3c\x28\x3f\x3a\x73\x63\x72\x69\x70\x74\x7c\x6f\x62\x6a\x65\x63\x74\x7c\x65\x6d\x62\x65\x64\x7c\x6f\x70\x74\x69\x6f\x6e\x7c\x73\x74\x79\x6c\x65\x29\x2f\x69\x2c\x59\x3d\x2f\x63\x68\x65\x63\x6b\x65\x64\x5c\x73\x2a\x28\x3f\x3a\x5b\x5e\x3d\x5d\x7c\x3d\x5c\x73\x2a\x2e\x63\x68\x65\x63\x6b\x65\x64\x2e\x29\x2f\x69\x2c\x5a\x3d\x7b\x6f\x70\x74\x69\x6f\x6e\x3a\x5b\x31\x2c\x22\x3c\x73\x65\x6c\x65\x63\x74\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x3d\x27\x6d\x75\x6c\x74\x69\x70\x6c\x65\x27\x3e\x22\x2c\x22\x3c\x2f\x73\x65\x6c\x65\x63\x74\x3e\x22\x5d\x2c\x6c\x65\x67\x65\x6e\x64\x3a\x5b\x31\x2c\x22\x3c\x66\x69\x65\x6c\x64\x73\x65\x74\x3e\x22\x2c\x22\x3c\x2f\x66\x69\x65\x6c\x64\x73\x65\x74\x3e\x22\x5d\x2c\x74\x68\x65\x61\x64\x3a\x5b\x31\x2c\x22\x3c\x74\x61\x62\x6c\x65\x3e\x22\x2c\x22\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x22\x5d\x2c\x74\x72\x3a\x5b\x32\x2c\x22\x3c\x74\x61\x62\x6c\x65\x3e\x3c\x74\x62\x6f\x64\x79\x3e\x22\x2c\x22\x3c\x2f\x74\x62\x6f\x64\x79\x3e\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x22\x5d\x2c\x74\x64\x3a\x5b\x33\x2c\x22\x3c\x74\x61\x62\x6c\x65\x3e\x3c\x74\x62\x6f\x64\x79\x3e\x3c\x74\x72\x3e\x22\x2c\x22\x3c\x2f\x74\x72\x3e\x3c\x2f\x74\x62\x6f\x64\x79\x3e\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x22\x5d\x2c\x63\x6f\x6c\x3a\x5b\x32\x2c\x22\x3c\x74\x61\x62\x6c\x65\x3e\x3c\x74\x62\x6f\x64\x79\x3e\x3c\x2f\x74\x62\x6f\x64\x79\x3e\x3c\x63\x6f\x6c\x67\x72\x6f\x75\x70\x3e\x22\x2c\x22\x3c\x2f\x63\x6f\x6c\x67\x72\x6f\x75\x70\x3e\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x22\x5d\x2c\x61\x72\x65\x61\x3a\x5b\x31\x2c\x22\x3c\x6d\x61\x70\x3e\x22\x2c\x22\x3c\x2f\x6d\x61\x70\x3e\x22\x5d\x2c\x5f\x64\x65\x66\x61\x75\x6c\x74\x3a\x5b\x30\x2c\x22\x22\x2c\x22\x22\x5d\x7d\x3b\x5a\x2e\x6f\x70\x74\x67\x72\x6f\x75\x70\x3d\x5a\x2e\x6f\x70\x74\x69\x6f\x6e\x2c\x5a\x2e\x74\x62\x6f\x64\x79\x3d\x5a\x2e\x74\x66\x6f\x6f\x74\x3d\x5a\x2e\x63\x6f\x6c\x67\x72\x6f\x75\x70\x3d\x5a\x2e\x63\x61\x70\x74\x69\x6f\x6e\x3d\x5a\x2e\x74\x68\x65\x61\x64\x2c\x5a\x2e\x74\x68\x3d\x5a\x2e\x74\x64\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x68\x74\x6d\x6c\x53\x65\x72\x69\x61\x6c\x69\x7a\x65\x7c\x7c\x28\x5a\x2e\x5f\x64\x65\x66\x61\x75\x6c\x74\x3d\x5b\x31\x2c\x22\x64\x69\x76\x3c\x64\x69\x76\x3e\x22\x2c\x22\x3c\x2f\x64\x69\x76\x3e\x22\x5d\x29\x2c\x64\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x74\x65\x78\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x64\x28\x74\x68\x69\x73\x29\x3b\x63\x2e\x74\x65\x78\x74\x28\x61\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x62\x2c\x63\x2e\x74\x65\x78\x74\x28\x29\x29\x29\x7d\x29\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x21\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x26\x26\x61\x21\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x6d\x70\x74\x79\x28\x29\x2e\x61\x70\x70\x65\x6e\x64\x28\x28\x74\x68\x69\x73\x5b\x30\x5d\x26\x26\x74\x68\x69\x73\x5b\x30\x5d\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x63\x29\x2e\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x4e\x6f\x64\x65\x28\x61\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x74\x65\x78\x74\x28\x74\x68\x69\x73\x29\x7d\x2c\x77\x72\x61\x70\x41\x6c\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x64\x28\x74\x68\x69\x73\x29\x2e\x77\x72\x61\x70\x41\x6c\x6c\x28\x61\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x62\x29\x29\x7d\x29\x3b\x69\x66\x28\x74\x68\x69\x73\x5b\x30\x5d\x29\x7b\x76\x61\x72\x20\x62\x3d\x64\x28\x61\x2c\x74\x68\x69\x73\x5b\x30\x5d\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x29\x2e\x65\x71\x28\x30\x29\x2e\x63\x6c\x6f\x6e\x65\x28\x21\x30\x29\x3b\x74\x68\x69\x73\x5b\x30\x5d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x26\x26\x62\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x74\x68\x69\x73\x5b\x30\x5d\x29\x2c\x62\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x74\x68\x69\x73\x3b\x77\x68\x69\x6c\x65\x28\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x26\x26\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x61\x3d\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x29\x2e\x61\x70\x70\x65\x6e\x64\x28\x74\x68\x69\x73\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x77\x72\x61\x70\x49\x6e\x6e\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x64\x28\x74\x68\x69\x73\x29\x2e\x77\x72\x61\x70\x49\x6e\x6e\x65\x72\x28\x61\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x62\x29\x29\x7d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x62\x3d\x64\x28\x74\x68\x69\x73\x29\x2c\x63\x3d\x62\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x28\x29\x3b\x63\x2e\x6c\x65\x6e\x67\x74\x68\x3f\x63\x2e\x77\x72\x61\x70\x41\x6c\x6c\x28\x61\x29\x3a\x62\x2e\x61\x70\x70\x65\x6e\x64\x28\x61\x29\x7d\x29\x7d\x2c\x77\x72\x61\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x64\x28\x74\x68\x69\x73\x29\x2e\x77\x72\x61\x70\x41\x6c\x6c\x28\x61\x29\x7d\x29\x7d\x2c\x75\x6e\x77\x72\x61\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x64\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x74\x68\x69\x73\x2c\x22\x62\x6f\x64\x79\x22\x29\x7c\x7c\x64\x28\x74\x68\x69\x73\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x57\x69\x74\x68\x28\x74\x68\x69\x73\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x29\x7d\x29\x2e\x65\x6e\x64\x28\x29\x7d\x2c\x61\x70\x70\x65\x6e\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x4d\x61\x6e\x69\x70\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x21\x30\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x74\x68\x69\x73\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x61\x29\x7d\x29\x7d\x2c\x70\x72\x65\x70\x65\x6e\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x4d\x61\x6e\x69\x70\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x21\x30\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x74\x68\x69\x73\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x61\x2c\x74\x68\x69\x73\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x7d\x29\x7d\x2c\x62\x65\x66\x6f\x72\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x74\x68\x69\x73\x5b\x30\x5d\x26\x26\x74\x68\x69\x73\x5b\x30\x5d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x4d\x61\x6e\x69\x70\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x21\x31\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x61\x2c\x74\x68\x69\x73\x29\x7d\x29\x3b\x69\x66\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x7b\x76\x61\x72\x20\x61\x3d\x64\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x29\x3b\x61\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x61\x2c\x74\x68\x69\x73\x2e\x74\x6f\x41\x72\x72\x61\x79\x28\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x61\x2c\x22\x62\x65\x66\x6f\x72\x65\x22\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x7d\x7d\x2c\x61\x66\x74\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x74\x68\x69\x73\x5b\x30\x5d\x26\x26\x74\x68\x69\x73\x5b\x30\x5d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x4d\x61\x6e\x69\x70\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x21\x31\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x61\x2c\x74\x68\x69\x73\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x29\x7d\x29\x3b\x69\x66\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x7b\x76\x61\x72\x20\x61\x3d\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x74\x68\x69\x73\x2c\x22\x61\x66\x74\x65\x72\x22\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x61\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x61\x2c\x64\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x29\x2e\x74\x6f\x41\x72\x72\x61\x79\x28\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x7d\x2c\x72\x65\x6d\x6f\x76\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x63\x3d\x30\x2c\x65\x3b\x28\x65\x3d\x74\x68\x69\x73\x5b\x63\x5d\x29\x21\x3d\x6e\x75\x6c\x6c\x3b\x63\x2b\x2b\x29\x69\x66\x28\x21\x61\x7c\x7c\x64\x2e\x66\x69\x6c\x74\x65\x72\x28\x61\x2c\x5b\x65\x5d\x29\x2e\x6c\x65\x6e\x67\x74\x68\x29\x21\x62\x26\x26\x65\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x28\x64\x2e\x63\x6c\x65\x61\x6e\x44\x61\x74\x61\x28\x65\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x2a\x22\x29\x29\x2c\x64\x2e\x63\x6c\x65\x61\x6e\x44\x61\x74\x61\x28\x5b\x65\x5d\x29\x29\x2c\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x26\x26\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x65\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x65\x6d\x70\x74\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x61\x3d\x30\x2c\x62\x3b\x28\x62\x3d\x74\x68\x69\x73\x5b\x61\x5d\x29\x21\x3d\x6e\x75\x6c\x6c\x3b\x61\x2b\x2b\x29\x7b\x62\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x64\x2e\x63\x6c\x65\x61\x6e\x44\x61\x74\x61\x28\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x2a\x22\x29\x29\x3b\x77\x68\x69\x6c\x65\x28\x62\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x62\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x62\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x63\x6c\x6f\x6e\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x61\x3d\x61\x3d\x3d\x6e\x75\x6c\x6c\x3f\x21\x31\x3a\x61\x2c\x62\x3d\x62\x3d\x3d\x6e\x75\x6c\x6c\x3f\x61\x3a\x62\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x63\x6c\x6f\x6e\x65\x28\x74\x68\x69\x73\x2c\x61\x2c\x62\x29\x7d\x29\x7d\x2c\x68\x74\x6d\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x61\x3d\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x5b\x30\x5d\x26\x26\x74\x68\x69\x73\x5b\x30\x5d\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x3f\x74\x68\x69\x73\x5b\x30\x5d\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x52\x2c\x22\x22\x29\x3a\x6e\x75\x6c\x6c\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x21\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x7c\x7c\x58\x2e\x74\x65\x73\x74\x28\x61\x29\x7c\x7c\x21\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x6c\x65\x61\x64\x69\x6e\x67\x57\x68\x69\x74\x65\x73\x70\x61\x63\x65\x26\x26\x53\x2e\x74\x65\x73\x74\x28\x61\x29\x7c\x7c\x5a\x5b\x28\x55\x2e\x65\x78\x65\x63\x28\x61\x29\x7c\x7c\x5b\x22\x22\x2c\x22\x22\x5d\x29\x5b\x31\x5d\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x29\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x3f\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x64\x28\x74\x68\x69\x73\x29\x3b\x63\x2e\x68\x74\x6d\x6c\x28\x61\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x62\x2c\x63\x2e\x68\x74\x6d\x6c\x28\x29\x29\x29\x7d\x29\x3a\x74\x68\x69\x73\x2e\x65\x6d\x70\x74\x79\x28\x29\x2e\x61\x70\x70\x65\x6e\x64\x28\x61\x29\x3b\x65\x6c\x73\x65\x7b\x61\x3d\x61\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x54\x2c\x22\x3c\x24\x31\x3e\x3c\x2f\x24\x32\x3e\x22\x29\x3b\x74\x72\x79\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x63\x3d\x30\x2c\x65\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x63\x3c\x65\x3b\x63\x2b\x2b\x29\x74\x68\x69\x73\x5b\x63\x5d\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x28\x64\x2e\x63\x6c\x65\x61\x6e\x44\x61\x74\x61\x28\x74\x68\x69\x73\x5b\x63\x5d\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x2a\x22\x29\x29\x2c\x74\x68\x69\x73\x5b\x63\x5d\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x61\x29\x7d\x63\x61\x74\x63\x68\x28\x66\x29\x7b\x74\x68\x69\x73\x2e\x65\x6d\x70\x74\x79\x28\x29\x2e\x61\x70\x70\x65\x6e\x64\x28\x61\x29\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x72\x65\x70\x6c\x61\x63\x65\x57\x69\x74\x68\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x74\x68\x69\x73\x5b\x30\x5d\x26\x26\x74\x68\x69\x73\x5b\x30\x5d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x7b\x69\x66\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x64\x28\x74\x68\x69\x73\x29\x2c\x65\x3d\x63\x2e\x68\x74\x6d\x6c\x28\x29\x3b\x63\x2e\x72\x65\x70\x6c\x61\x63\x65\x57\x69\x74\x68\x28\x61\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x62\x2c\x65\x29\x29\x7d\x29\x3b\x74\x79\x70\x65\x6f\x66\x20\x61\x21\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x61\x3d\x64\x28\x61\x29\x2e\x64\x65\x74\x61\x63\x68\x28\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x62\x3d\x74\x68\x69\x73\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x2c\x63\x3d\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x64\x28\x74\x68\x69\x73\x29\x2e\x72\x65\x6d\x6f\x76\x65\x28\x29\x2c\x62\x3f\x64\x28\x62\x29\x2e\x62\x65\x66\x6f\x72\x65\x28\x61\x29\x3a\x64\x28\x63\x29\x2e\x61\x70\x70\x65\x6e\x64\x28\x61\x29\x7d\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3f\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x64\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x3f\x61\x28\x29\x3a\x61\x29\x2c\x22\x72\x65\x70\x6c\x61\x63\x65\x57\x69\x74\x68\x22\x2c\x61\x29\x3a\x74\x68\x69\x73\x7d\x2c\x64\x65\x74\x61\x63\x68\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x72\x65\x6d\x6f\x76\x65\x28\x61\x2c\x21\x30\x29\x7d\x2c\x64\x6f\x6d\x4d\x61\x6e\x69\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x2c\x67\x2c\x68\x2c\x69\x2c\x6a\x3d\x61\x5b\x30\x5d\x2c\x6b\x3d\x5b\x5d\x3b\x69\x66\x28\x21\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x63\x68\x65\x63\x6b\x43\x6c\x6f\x6e\x65\x26\x26\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x33\x26\x26\x74\x79\x70\x65\x6f\x66\x20\x6a\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x59\x2e\x74\x65\x73\x74\x28\x6a\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x64\x28\x74\x68\x69\x73\x29\x2e\x64\x6f\x6d\x4d\x61\x6e\x69\x70\x28\x61\x2c\x63\x2c\x65\x2c\x21\x30\x29\x7d\x29\x3b\x69\x66\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6a\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x66\x29\x7b\x76\x61\x72\x20\x67\x3d\x64\x28\x74\x68\x69\x73\x29\x3b\x61\x5b\x30\x5d\x3d\x6a\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x66\x2c\x63\x3f\x67\x2e\x68\x74\x6d\x6c\x28\x29\x3a\x62\x29\x2c\x67\x2e\x64\x6f\x6d\x4d\x61\x6e\x69\x70\x28\x61\x2c\x63\x2c\x65\x29\x7d\x29\x3b\x69\x66\x28\x74\x68\x69\x73\x5b\x30\x5d\x29\x7b\x69\x3d\x6a\x26\x26\x6a\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x26\x26\x69\x26\x26\x69\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x31\x26\x26\x69\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3f\x66\x3d\x7b\x66\x72\x61\x67\x6d\x65\x6e\x74\x3a\x69\x7d\x3a\x66\x3d\x64\x2e\x62\x75\x69\x6c\x64\x46\x72\x61\x67\x6d\x65\x6e\x74\x28\x61\x2c\x74\x68\x69\x73\x2c\x6b\x29\x2c\x68\x3d\x66\x2e\x66\x72\x61\x67\x6d\x65\x6e\x74\x2c\x68\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x3f\x67\x3d\x68\x3d\x68\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x3a\x67\x3d\x68\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x3b\x69\x66\x28\x67\x29\x7b\x63\x3d\x63\x26\x26\x64\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x67\x2c\x22\x74\x72\x22\x29\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x6c\x3d\x30\x2c\x6d\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x6e\x3d\x6d\x2d\x31\x3b\x6c\x3c\x6d\x3b\x6c\x2b\x2b\x29\x65\x2e\x63\x61\x6c\x6c\x28\x63\x3f\x24\x28\x74\x68\x69\x73\x5b\x6c\x5d\x2c\x67\x29\x3a\x74\x68\x69\x73\x5b\x6c\x5d\x2c\x66\x2e\x63\x61\x63\x68\x65\x61\x62\x6c\x65\x7c\x7c\x6d\x3e\x31\x26\x26\x6c\x3c\x6e\x3f\x64\x2e\x63\x6c\x6f\x6e\x65\x28\x68\x2c\x21\x30\x2c\x21\x30\x29\x3a\x68\x29\x7d\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x26\x26\x64\x2e\x65\x61\x63\x68\x28\x6b\x2c\x62\x63\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x7d\x29\x2c\x64\x2e\x62\x75\x69\x6c\x64\x46\x72\x61\x67\x6d\x65\x6e\x74\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x2c\x67\x2c\x68\x2c\x69\x3d\x62\x26\x26\x62\x5b\x30\x5d\x3f\x62\x5b\x30\x5d\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x62\x5b\x30\x5d\x3a\x63\x3b\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x26\x26\x74\x79\x70\x65\x6f\x66\x20\x61\x5b\x30\x5d\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x61\x5b\x30\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3c\x35\x31\x32\x26\x26\x69\x3d\x3d\x3d\x63\x26\x26\x61\x5b\x30\x5d\x2e\x63\x68\x61\x72\x41\x74\x28\x30\x29\x3d\x3d\x3d\x22\x3c\x22\x26\x26\x21\x58\x2e\x74\x65\x73\x74\x28\x61\x5b\x30\x5d\x29\x26\x26\x28\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x63\x68\x65\x63\x6b\x43\x6c\x6f\x6e\x65\x7c\x7c\x21\x59\x2e\x74\x65\x73\x74\x28\x61\x5b\x30\x5d\x29\x29\x26\x26\x28\x67\x3d\x21\x30\x2c\x68\x3d\x64\x2e\x66\x72\x61\x67\x6d\x65\x6e\x74\x73\x5b\x61\x5b\x30\x5d\x5d\x2c\x68\x26\x26\x28\x68\x21\x3d\x3d\x31\x26\x26\x28\x66\x3d\x68\x29\x29\x29\x2c\x66\x7c\x7c\x28\x66\x3d\x69\x2e\x63\x72\x65\x61\x74\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x46\x72\x61\x67\x6d\x65\x6e\x74\x28\x29\x2c\x64\x2e\x63\x6c\x65\x61\x6e\x28\x61\x2c\x69\x2c\x66\x2c\x65\x29\x29\x2c\x67\x26\x26\x28\x64\x2e\x66\x72\x61\x67\x6d\x65\x6e\x74\x73\x5b\x61\x5b\x30\x5d\x5d\x3d\x68\x3f\x66\x3a\x31\x29\x3b\x72\x65\x74\x75\x72\x6e\x7b\x66\x72\x61\x67\x6d\x65\x6e\x74\x3a\x66\x2c\x63\x61\x63\x68\x65\x61\x62\x6c\x65\x3a\x67\x7d\x7d\x2c\x64\x2e\x66\x72\x61\x67\x6d\x65\x6e\x74\x73\x3d\x7b\x7d\x2c\x64\x2e\x65\x61\x63\x68\x28\x7b\x61\x70\x70\x65\x6e\x64\x54\x6f\x3a\x22\x61\x70\x70\x65\x6e\x64\x22\x2c\x70\x72\x65\x70\x65\x6e\x64\x54\x6f\x3a\x22\x70\x72\x65\x70\x65\x6e\x64\x22\x2c\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x3a\x22\x62\x65\x66\x6f\x72\x65\x22\x2c\x69\x6e\x73\x65\x72\x74\x41\x66\x74\x65\x72\x3a\x22\x61\x66\x74\x65\x72\x22\x2c\x72\x65\x70\x6c\x61\x63\x65\x41\x6c\x6c\x3a\x22\x72\x65\x70\x6c\x61\x63\x65\x57\x69\x74\x68\x22\x7d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x64\x2e\x66\x6e\x5b\x61\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x29\x7b\x76\x61\x72\x20\x65\x3d\x5b\x5d\x2c\x66\x3d\x64\x28\x63\x29\x2c\x67\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x26\x26\x74\x68\x69\x73\x5b\x30\x5d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x69\x66\x28\x67\x26\x26\x67\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x31\x26\x26\x67\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x26\x26\x66\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x29\x7b\x66\x5b\x62\x5d\x28\x74\x68\x69\x73\x5b\x30\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x66\x6f\x72\x28\x76\x61\x72\x20\x68\x3d\x30\x2c\x69\x3d\x66\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x68\x3c\x69\x3b\x68\x2b\x2b\x29\x7b\x76\x61\x72\x20\x6a\x3d\x28\x68\x3e\x30\x3f\x74\x68\x69\x73\x2e\x63\x6c\x6f\x6e\x65\x28\x21\x30\x29\x3a\x74\x68\x69\x73\x29\x2e\x67\x65\x74\x28\x29\x3b\x64\x28\x66\x5b\x68\x5d\x29\x5b\x62\x5d\x28\x6a\x29\x2c\x65\x3d\x65\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6a\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x65\x2c\x61\x2c\x66\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x29\x7d\x7d\x29\x2c\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x63\x6c\x6f\x6e\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x65\x3d\x61\x2e\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x21\x30\x29\x2c\x66\x2c\x67\x2c\x68\x3b\x69\x66\x28\x28\x21\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x6e\x6f\x43\x6c\x6f\x6e\x65\x45\x76\x65\x6e\x74\x7c\x7c\x21\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x6e\x6f\x43\x6c\x6f\x6e\x65\x43\x68\x65\x63\x6b\x65\x64\x29\x26\x26\x28\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x7c\x7c\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x31\x29\x26\x26\x21\x64\x2e\x69\x73\x58\x4d\x4c\x44\x6f\x63\x28\x61\x29\x29\x7b\x62\x61\x28\x61\x2c\x65\x29\x2c\x66\x3d\x62\x62\x28\x61\x29\x2c\x67\x3d\x62\x62\x28\x65\x29\x3b\x66\x6f\x72\x28\x68\x3d\x30\x3b\x66\x5b\x68\x5d\x3b\x2b\x2b\x68\x29\x62\x61\x28\x66\x5b\x68\x5d\x2c\x67\x5b\x68\x5d\x29\x7d\x69\x66\x28\x62\x29\x7b\x5f\x28\x61\x2c\x65\x29\x3b\x69\x66\x28\x63\x29\x7b\x66\x3d\x62\x62\x28\x61\x29\x2c\x67\x3d\x62\x62\x28\x65\x29\x3b\x66\x6f\x72\x28\x68\x3d\x30\x3b\x66\x5b\x68\x5d\x3b\x2b\x2b\x68\x29\x5f\x28\x66\x5b\x68\x5d\x2c\x67\x5b\x68\x5d\x29\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x65\x7d\x2c\x63\x6c\x65\x61\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x65\x2c\x66\x29\x7b\x62\x3d\x62\x7c\x7c\x63\x2c\x74\x79\x70\x65\x6f\x66\x20\x62\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x3d\x3d\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x26\x26\x28\x62\x3d\x62\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x62\x5b\x30\x5d\x26\x26\x62\x5b\x30\x5d\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x63\x29\x3b\x76\x61\x72\x20\x67\x3d\x5b\x5d\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x68\x3d\x30\x2c\x69\x3b\x28\x69\x3d\x61\x5b\x68\x5d\x29\x21\x3d\x6e\x75\x6c\x6c\x3b\x68\x2b\x2b\x29\x7b\x74\x79\x70\x65\x6f\x66\x20\x69\x3d\x3d\x3d\x22\x6e\x75\x6d\x62\x65\x72\x22\x26\x26\x28\x69\x2b\x3d\x22\x22\x29\x3b\x69\x66\x28\x21\x69\x29\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x69\x21\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x7c\x7c\x57\x2e\x74\x65\x73\x74\x28\x69\x29\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x69\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x7b\x69\x3d\x69\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x54\x2c\x22\x3c\x24\x31\x3e\x3c\x2f\x24\x32\x3e\x22\x29\x3b\x76\x61\x72\x20\x6a\x3d\x28\x55\x2e\x65\x78\x65\x63\x28\x69\x29\x7c\x7c\x5b\x22\x22\x2c\x22\x22\x5d\x29\x5b\x31\x5d\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2c\x6b\x3d\x5a\x5b\x6a\x5d\x7c\x7c\x5a\x2e\x5f\x64\x65\x66\x61\x75\x6c\x74\x2c\x6c\x3d\x6b\x5b\x30\x5d\x2c\x6d\x3d\x62\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x3b\x6d\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x6b\x5b\x31\x5d\x2b\x69\x2b\x6b\x5b\x32\x5d\x3b\x77\x68\x69\x6c\x65\x28\x6c\x2d\x2d\x29\x6d\x3d\x6d\x2e\x6c\x61\x73\x74\x43\x68\x69\x6c\x64\x3b\x69\x66\x28\x21\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x74\x62\x6f\x64\x79\x29\x7b\x76\x61\x72\x20\x6e\x3d\x56\x2e\x74\x65\x73\x74\x28\x69\x29\x2c\x6f\x3d\x6a\x3d\x3d\x3d\x22\x74\x61\x62\x6c\x65\x22\x26\x26\x21\x6e\x3f\x6d\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x26\x26\x6d\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x3a\x6b\x5b\x31\x5d\x3d\x3d\x3d\x22\x3c\x74\x61\x62\x6c\x65\x3e\x22\x26\x26\x21\x6e\x3f\x6d\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x3a\x5b\x5d\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x70\x3d\x6f\x2e\x6c\x65\x6e\x67\x74\x68\x2d\x31\x3b\x70\x3e\x3d\x30\x3b\x2d\x2d\x70\x29\x64\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x6f\x5b\x70\x5d\x2c\x22\x74\x62\x6f\x64\x79\x22\x29\x26\x26\x21\x6f\x5b\x70\x5d\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x26\x26\x6f\x5b\x70\x5d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x6f\x5b\x70\x5d\x29\x7d\x21\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x6c\x65\x61\x64\x69\x6e\x67\x57\x68\x69\x74\x65\x73\x70\x61\x63\x65\x26\x26\x53\x2e\x74\x65\x73\x74\x28\x69\x29\x26\x26\x6d\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x62\x2e\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x4e\x6f\x64\x65\x28\x53\x2e\x65\x78\x65\x63\x28\x69\x29\x5b\x30\x5d\x29\x2c\x6d\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x2c\x69\x3d\x6d\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x7d\x7d\x65\x6c\x73\x65\x20\x69\x3d\x62\x2e\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x4e\x6f\x64\x65\x28\x69\x29\x3b\x69\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3f\x67\x2e\x70\x75\x73\x68\x28\x69\x29\x3a\x67\x3d\x64\x2e\x6d\x65\x72\x67\x65\x28\x67\x2c\x69\x29\x7d\x69\x66\x28\x65\x29\x66\x6f\x72\x28\x68\x3d\x30\x3b\x67\x5b\x68\x5d\x3b\x68\x2b\x2b\x29\x21\x66\x7c\x7c\x21\x64\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x67\x5b\x68\x5d\x2c\x22\x73\x63\x72\x69\x70\x74\x22\x29\x7c\x7c\x67\x5b\x68\x5d\x2e\x74\x79\x70\x65\x26\x26\x67\x5b\x68\x5d\x2e\x74\x79\x70\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x21\x3d\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\x3f\x28\x67\x5b\x68\x5d\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x67\x2e\x73\x70\x6c\x69\x63\x65\x2e\x61\x70\x70\x6c\x79\x28\x67\x2c\x5b\x68\x2b\x31\x2c\x30\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x64\x2e\x6d\x61\x6b\x65\x41\x72\x72\x61\x79\x28\x67\x5b\x68\x5d\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x73\x63\x72\x69\x70\x74\x22\x29\x29\x29\x29\x2c\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x67\x5b\x68\x5d\x29\x29\x3a\x66\x2e\x70\x75\x73\x68\x28\x67\x5b\x68\x5d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3f\x67\x5b\x68\x5d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x67\x5b\x68\x5d\x29\x3a\x67\x5b\x68\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x67\x7d\x2c\x63\x6c\x65\x61\x6e\x44\x61\x74\x61\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x2c\x63\x2c\x65\x3d\x64\x2e\x63\x61\x63\x68\x65\x2c\x66\x3d\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x2c\x67\x3d\x64\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\x6c\x2c\x68\x3d\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x64\x65\x6c\x65\x74\x65\x45\x78\x70\x61\x6e\x64\x6f\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x69\x3d\x30\x2c\x6a\x3b\x28\x6a\x3d\x61\x5b\x69\x5d\x29\x21\x3d\x6e\x75\x6c\x6c\x3b\x69\x2b\x2b\x29\x7b\x69\x66\x28\x6a\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x26\x26\x64\x2e\x6e\x6f\x44\x61\x74\x61\x5b\x6a\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x29\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x63\x3d\x6a\x5b\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x3b\x69\x66\x28\x63\x29\x7b\x62\x3d\x65\x5b\x63\x5d\x26\x26\x65\x5b\x63\x5d\x5b\x66\x5d\x3b\x69\x66\x28\x62\x26\x26\x62\x2e\x65\x76\x65\x6e\x74\x73\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x6b\x20\x69\x6e\x20\x62\x2e\x65\x76\x65\x6e\x74\x73\x29\x67\x5b\x6b\x5d\x3f\x64\x2e\x65\x76\x65\x6e\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x6a\x2c\x6b\x29\x3a\x64\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x28\x6a\x2c\x6b\x2c\x62\x2e\x68\x61\x6e\x64\x6c\x65\x29\x3b\x62\x2e\x68\x61\x6e\x64\x6c\x65\x26\x26\x28\x62\x2e\x68\x61\x6e\x64\x6c\x65\x2e\x65\x6c\x65\x6d\x3d\x6e\x75\x6c\x6c\x29\x7d\x68\x3f\x64\x65\x6c\x65\x74\x65\x20\x6a\x5b\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x3a\x6a\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x26\x26\x6a\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x29\x2c\x64\x65\x6c\x65\x74\x65\x20\x65\x5b\x63\x5d\x7d\x7d\x7d\x7d\x29\x3b\x76\x61\x72\x20\x62\x64\x3d\x2f\x61\x6c\x70\x68\x61\x5c\x28\x5b\x5e\x29\x5d\x2a\x5c\x29\x2f\x69\x2c\x62\x65\x3d\x2f\x6f\x70\x61\x63\x69\x74\x79\x3d\x28\x5b\x5e\x29\x5d\x2a\x29\x2f\x2c\x62\x66\x3d\x2f\x2d\x28\x5b\x61\x2d\x7a\x5d\x29\x2f\x69\x67\x2c\x62\x67\x3d\x2f\x28\x5b\x41\x2d\x5a\x5d\x7c\x5e\x6d\x73\x29\x2f\x67\x2c\x62\x68\x3d\x2f\x5e\x2d\x3f\x5c\x64\x2b\x28\x3f\x3a\x70\x78\x29\x3f\x24\x2f\x69\x2c\x62\x69\x3d\x2f\x5e\x2d\x3f\x5c\x64\x2f\x2c\x62\x6a\x3d\x7b\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x22\x61\x62\x73\x6f\x6c\x75\x74\x65\x22\x2c\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x22\x68\x69\x64\x64\x65\x6e\x22\x2c\x64\x69\x73\x70\x6c\x61\x79\x3a\x22\x62\x6c\x6f\x63\x6b\x22\x7d\x2c\x62\x6b\x3d\x5b\x22\x4c\x65\x66\x74\x22\x2c\x22\x52\x69\x67\x68\x74\x22\x5d\x2c\x62\x6c\x3d\x5b\x22\x54\x6f\x70\x22\x2c\x22\x42\x6f\x74\x74\x6f\x6d\x22\x5d\x2c\x62\x6d\x2c\x62\x6e\x2c\x62\x6f\x2c\x62\x70\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x62\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x7d\x3b\x64\x2e\x66\x6e\x2e\x63\x73\x73\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x69\x66\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x32\x26\x26\x63\x3d\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x61\x63\x63\x65\x73\x73\x28\x74\x68\x69\x73\x2c\x61\x2c\x63\x2c\x21\x30\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x65\x21\x3d\x3d\x62\x3f\x64\x2e\x73\x74\x79\x6c\x65\x28\x61\x2c\x63\x2c\x65\x29\x3a\x64\x2e\x63\x73\x73\x28\x61\x2c\x63\x29\x7d\x29\x7d\x2c\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x63\x73\x73\x48\x6f\x6f\x6b\x73\x3a\x7b\x6f\x70\x61\x63\x69\x74\x79\x3a\x7b\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x62\x6d\x28\x61\x2c\x22\x6f\x70\x61\x63\x69\x74\x79\x22\x2c\x22\x6f\x70\x61\x63\x69\x74\x79\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x3d\x3d\x3d\x22\x22\x3f\x22\x31\x22\x3a\x63\x7d\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x70\x61\x63\x69\x74\x79\x7d\x7d\x7d\x2c\x63\x73\x73\x4e\x75\x6d\x62\x65\x72\x3a\x7b\x7a\x49\x6e\x64\x65\x78\x3a\x21\x30\x2c\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x21\x30\x2c\x6f\x70\x61\x63\x69\x74\x79\x3a\x21\x30\x2c\x7a\x6f\x6f\x6d\x3a\x21\x30\x2c\x6c\x69\x6e\x65\x48\x65\x69\x67\x68\x74\x3a\x21\x30\x7d\x2c\x63\x73\x73\x50\x72\x6f\x70\x73\x3a\x7b\x22\x66\x6c\x6f\x61\x74\x22\x3a\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x63\x73\x73\x46\x6c\x6f\x61\x74\x3f\x22\x63\x73\x73\x46\x6c\x6f\x61\x74\x22\x3a\x22\x73\x74\x79\x6c\x65\x46\x6c\x6f\x61\x74\x22\x7d\x2c\x73\x74\x79\x6c\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x2c\x66\x29\x7b\x69\x66\x28\x61\x26\x26\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x33\x26\x26\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x38\x26\x26\x61\x2e\x73\x74\x79\x6c\x65\x29\x7b\x76\x61\x72\x20\x67\x2c\x68\x3d\x64\x2e\x63\x61\x6d\x65\x6c\x43\x61\x73\x65\x28\x63\x29\x2c\x69\x3d\x61\x2e\x73\x74\x79\x6c\x65\x2c\x6a\x3d\x64\x2e\x63\x73\x73\x48\x6f\x6f\x6b\x73\x5b\x68\x5d\x3b\x63\x3d\x64\x2e\x63\x73\x73\x50\x72\x6f\x70\x73\x5b\x68\x5d\x7c\x7c\x68\x3b\x69\x66\x28\x65\x3d\x3d\x3d\x62\x29\x7b\x69\x66\x28\x6a\x26\x26\x22\x67\x65\x74\x22\x69\x6e\x20\x6a\x26\x26\x28\x67\x3d\x6a\x2e\x67\x65\x74\x28\x61\x2c\x21\x31\x2c\x66\x29\x29\x21\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x67\x3b\x72\x65\x74\x75\x72\x6e\x20\x69\x5b\x63\x5d\x7d\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x65\x3d\x3d\x3d\x22\x6e\x75\x6d\x62\x65\x72\x22\x26\x26\x69\x73\x4e\x61\x4e\x28\x65\x29\x7c\x7c\x65\x3d\x3d\x6e\x75\x6c\x6c\x29\x72\x65\x74\x75\x72\x6e\x3b\x74\x79\x70\x65\x6f\x66\x20\x65\x3d\x3d\x3d\x22\x6e\x75\x6d\x62\x65\x72\x22\x26\x26\x21\x64\x2e\x63\x73\x73\x4e\x75\x6d\x62\x65\x72\x5b\x68\x5d\x26\x26\x28\x65\x2b\x3d\x22\x70\x78\x22\x29\x3b\x69\x66\x28\x21\x6a\x7c\x7c\x21\x28\x22\x73\x65\x74\x22\x69\x6e\x20\x6a\x29\x7c\x7c\x28\x65\x3d\x6a\x2e\x73\x65\x74\x28\x61\x2c\x65\x29\x29\x21\x3d\x3d\x62\x29\x74\x72\x79\x7b\x69\x5b\x63\x5d\x3d\x65\x7d\x63\x61\x74\x63\x68\x28\x6b\x29\x7b\x7d\x7d\x7d\x2c\x63\x73\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x2c\x67\x3d\x64\x2e\x63\x61\x6d\x65\x6c\x43\x61\x73\x65\x28\x63\x29\x2c\x68\x3d\x64\x2e\x63\x73\x73\x48\x6f\x6f\x6b\x73\x5b\x67\x5d\x3b\x63\x3d\x64\x2e\x63\x73\x73\x50\x72\x6f\x70\x73\x5b\x67\x5d\x7c\x7c\x67\x3b\x69\x66\x28\x68\x26\x26\x22\x67\x65\x74\x22\x69\x6e\x20\x68\x26\x26\x28\x66\x3d\x68\x2e\x67\x65\x74\x28\x61\x2c\x21\x30\x2c\x65\x29\x29\x21\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x3b\x69\x66\x28\x62\x6d\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x6d\x28\x61\x2c\x63\x2c\x67\x29\x7d\x2c\x73\x77\x61\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x7b\x7d\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x65\x20\x69\x6e\x20\x62\x29\x64\x5b\x65\x5d\x3d\x61\x2e\x73\x74\x79\x6c\x65\x5b\x65\x5d\x2c\x61\x2e\x73\x74\x79\x6c\x65\x5b\x65\x5d\x3d\x62\x5b\x65\x5d\x3b\x63\x2e\x63\x61\x6c\x6c\x28\x61\x29\x3b\x66\x6f\x72\x28\x65\x20\x69\x6e\x20\x62\x29\x61\x2e\x73\x74\x79\x6c\x65\x5b\x65\x5d\x3d\x64\x5b\x65\x5d\x7d\x2c\x63\x61\x6d\x65\x6c\x43\x61\x73\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x66\x2c\x62\x70\x29\x7d\x7d\x29\x2c\x64\x2e\x63\x75\x72\x43\x53\x53\x3d\x64\x2e\x63\x73\x73\x2c\x64\x2e\x65\x61\x63\x68\x28\x5b\x22\x68\x65\x69\x67\x68\x74\x22\x2c\x22\x77\x69\x64\x74\x68\x22\x5d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x64\x2e\x63\x73\x73\x48\x6f\x6f\x6b\x73\x5b\x62\x5d\x3d\x7b\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x3b\x69\x66\x28\x63\x29\x7b\x61\x2e\x6f\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68\x21\x3d\x3d\x30\x3f\x66\x3d\x62\x71\x28\x61\x2c\x62\x2c\x65\x29\x3a\x64\x2e\x73\x77\x61\x70\x28\x61\x2c\x62\x6a\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x3d\x62\x71\x28\x61\x2c\x62\x2c\x65\x29\x7d\x29\x3b\x69\x66\x28\x66\x3c\x3d\x30\x29\x7b\x66\x3d\x62\x6d\x28\x61\x2c\x62\x2c\x62\x29\x2c\x66\x3d\x3d\x3d\x22\x30\x70\x78\x22\x26\x26\x62\x6f\x26\x26\x28\x66\x3d\x62\x6f\x28\x61\x2c\x62\x2c\x62\x29\x29\x3b\x69\x66\x28\x66\x21\x3d\x6e\x75\x6c\x6c\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x3d\x3d\x3d\x22\x22\x7c\x7c\x66\x3d\x3d\x3d\x22\x61\x75\x74\x6f\x22\x3f\x22\x30\x70\x78\x22\x3a\x66\x7d\x69\x66\x28\x66\x3c\x30\x7c\x7c\x66\x3d\x3d\x6e\x75\x6c\x6c\x29\x7b\x66\x3d\x61\x2e\x73\x74\x79\x6c\x65\x5b\x62\x5d\x3b\x72\x65\x74\x75\x72\x6e\x20\x66\x3d\x3d\x3d\x22\x22\x7c\x7c\x66\x3d\x3d\x3d\x22\x61\x75\x74\x6f\x22\x3f\x22\x30\x70\x78\x22\x3a\x66\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x66\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x3f\x66\x3a\x66\x2b\x22\x70\x78\x22\x7d\x7d\x2c\x73\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x21\x62\x68\x2e\x74\x65\x73\x74\x28\x62\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x3b\x62\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x62\x29\x3b\x69\x66\x28\x62\x3e\x3d\x30\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x2b\x22\x70\x78\x22\x7d\x7d\x7d\x29\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x6f\x70\x61\x63\x69\x74\x79\x7c\x7c\x28\x64\x2e\x63\x73\x73\x48\x6f\x6f\x6b\x73\x2e\x6f\x70\x61\x63\x69\x74\x79\x3d\x7b\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x62\x65\x2e\x74\x65\x73\x74\x28\x28\x62\x26\x26\x61\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x74\x79\x6c\x65\x3f\x61\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x74\x79\x6c\x65\x2e\x66\x69\x6c\x74\x65\x72\x3a\x61\x2e\x73\x74\x79\x6c\x65\x2e\x66\x69\x6c\x74\x65\x72\x29\x7c\x7c\x22\x22\x29\x3f\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x52\x65\x67\x45\x78\x70\x2e\x24\x31\x29\x2f\x31\x30\x30\x2b\x22\x22\x3a\x62\x3f\x22\x31\x22\x3a\x22\x22\x7d\x2c\x73\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x61\x2e\x73\x74\x79\x6c\x65\x3b\x63\x2e\x7a\x6f\x6f\x6d\x3d\x31\x3b\x76\x61\x72\x20\x65\x3d\x64\x2e\x69\x73\x4e\x61\x4e\x28\x62\x29\x3f\x22\x22\x3a\x22\x61\x6c\x70\x68\x61\x28\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x2b\x62\x2a\x31\x30\x30\x2b\x22\x29\x22\x2c\x66\x3d\x63\x2e\x66\x69\x6c\x74\x65\x72\x7c\x7c\x22\x22\x3b\x63\x2e\x66\x69\x6c\x74\x65\x72\x3d\x62\x64\x2e\x74\x65\x73\x74\x28\x66\x29\x3f\x66\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x64\x2c\x65\x29\x3a\x63\x2e\x66\x69\x6c\x74\x65\x72\x2b\x22\x20\x22\x2b\x65\x7d\x7d\x29\x2c\x64\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x72\x65\x6c\x69\x61\x62\x6c\x65\x4d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x7c\x7c\x28\x64\x2e\x63\x73\x73\x48\x6f\x6f\x6b\x73\x2e\x6d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x3d\x7b\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3b\x64\x2e\x73\x77\x61\x70\x28\x61\x2c\x7b\x64\x69\x73\x70\x6c\x61\x79\x3a\x22\x69\x6e\x6c\x69\x6e\x65\x2d\x62\x6c\x6f\x63\x6b\x22\x7d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x62\x3f\x63\x3d\x62\x6d\x28\x61\x2c\x22\x6d\x61\x72\x67\x69\x6e\x2d\x72\x69\x67\x68\x74\x22\x2c\x22\x6d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x22\x29\x3a\x63\x3d\x61\x2e\x73\x74\x79\x6c\x65\x2e\x6d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x7d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x7d\x29\x7d\x29\x2c\x63\x2e\x64\x65\x66\x61\x75\x6c\x74\x56\x69\x65\x77\x26\x26\x63\x2e\x64\x65\x66\x61\x75\x6c\x74\x56\x69\x65\x77\x2e\x67\x65\x74\x43\x6f\x6d\x70\x75\x74\x65\x64\x53\x74\x79\x6c\x65\x26\x26\x28\x62\x6e\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x2c\x67\x2c\x68\x3b\x65\x3d\x65\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x67\x2c\x22\x2d\x24\x31\x22\x29\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3b\x69\x66\x28\x21\x28\x67\x3d\x61\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x64\x65\x66\x61\x75\x6c\x74\x56\x69\x65\x77\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x3b\x69\x66\x28\x68\x3d\x67\x2e\x67\x65\x74\x43\x6f\x6d\x70\x75\x74\x65\x64\x53\x74\x79\x6c\x65\x28\x61\x2c\x6e\x75\x6c\x6c\x29\x29\x66\x3d\x68\x2e\x67\x65\x74\x50\x72\x6f\x70\x65\x72\x74\x79\x56\x61\x6c\x75\x65\x28\x65\x29\x2c\x66\x3d\x3d\x3d\x22\x22\x26\x26\x21\x64\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x61\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x61\x29\x26\x26\x28\x66\x3d\x64\x2e\x73\x74\x79\x6c\x65\x28\x61\x2c\x65\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x66\x7d\x29\x2c\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x74\x79\x6c\x65\x26\x26\x28\x62\x6f\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x2c\x64\x3d\x61\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x74\x79\x6c\x65\x26\x26\x61\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x74\x79\x6c\x65\x5b\x62\x5d\x2c\x65\x3d\x61\x2e\x72\x75\x6e\x74\x69\x6d\x65\x53\x74\x79\x6c\x65\x26\x26\x61\x2e\x72\x75\x6e\x74\x69\x6d\x65\x53\x74\x79\x6c\x65\x5b\x62\x5d\x2c\x66\x3d\x61\x2e\x73\x74\x79\x6c\x65\x3b\x21\x62\x68\x2e\x74\x65\x73\x74\x28\x64\x29\x26\x26\x62\x69\x2e\x74\x65\x73\x74\x28\x64\x29\x26\x26\x28\x63\x3d\x66\x2e\x6c\x65\x66\x74\x2c\x65\x26\x26\x28\x61\x2e\x72\x75\x6e\x74\x69\x6d\x65\x53\x74\x79\x6c\x65\x2e\x6c\x65\x66\x74\x3d\x61\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x74\x79\x6c\x65\x2e\x6c\x65\x66\x74\x29\x2c\x66\x2e\x6c\x65\x66\x74\x3d\x62\x3d\x3d\x3d\x22\x66\x6f\x6e\x74\x53\x69\x7a\x65\x22\x3f\x22\x31\x65\x6d\x22\x3a\x64\x7c\x7c\x30\x2c\x64\x3d\x66\x2e\x70\x69\x78\x65\x6c\x4c\x65\x66\x74\x2b\x22\x70\x78\x22\x2c\x66\x2e\x6c\x65\x66\x74\x3d\x63\x2c\x65\x26\x26\x28\x61\x2e\x72\x75\x6e\x74\x69\x6d\x65\x53\x74\x79\x6c\x65\x2e\x6c\x65\x66\x74\x3d\x65\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x3d\x3d\x3d\x22\x22\x3f\x22\x61\x75\x74\x6f\x22\x3a\x64\x7d\x29\x2c\x62\x6d\x3d\x62\x6e\x7c\x7c\x62\x6f\x2c\x64\x2e\x65\x78\x70\x72\x26\x26\x64\x2e\x65\x78\x70\x72\x2e\x66\x69\x6c\x74\x65\x72\x73\x26\x26\x28\x64\x2e\x65\x78\x70\x72\x2e\x66\x69\x6c\x74\x65\x72\x73\x2e\x68\x69\x64\x64\x65\x6e\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x6f\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68\x2c\x63\x3d\x61\x2e\x6f\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x3d\x3d\x3d\x30\x26\x26\x63\x3d\x3d\x3d\x30\x7c\x7c\x21\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x72\x65\x6c\x69\x61\x62\x6c\x65\x48\x69\x64\x64\x65\x6e\x4f\x66\x66\x73\x65\x74\x73\x26\x26\x28\x61\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x7c\x7c\x64\x2e\x63\x73\x73\x28\x61\x2c\x22\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x29\x3d\x3d\x3d\x22\x6e\x6f\x6e\x65\x22\x7d\x2c\x64\x2e\x65\x78\x70\x72\x2e\x66\x69\x6c\x74\x65\x72\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x64\x2e\x65\x78\x70\x72\x2e\x66\x69\x6c\x74\x65\x72\x73\x2e\x68\x69\x64\x64\x65\x6e\x28\x61\x29\x7d\x29\x3b\x76\x61\x72\x20\x62\x72\x3d\x2f\x25\x32\x30\x2f\x67\x2c\x62\x73\x3d\x2f\x5c\x5b\x5c\x5d\x24\x2f\x2c\x62\x74\x3d\x2f\x5c\x72\x3f\x5c\x6e\x2f\x67\x2c\x62\x75\x3d\x2f\x23\x2e\x2a\x24\x2f\x2c\x62\x76\x3d\x2f\x5e\x28\x2e\x2a\x3f\x29\x3a\x5b\x20\x5c\x74\x5d\x2a\x28\x5b\x5e\x5c\x72\x5c\x6e\x5d\x2a\x29\x5c\x72\x3f\x24\x2f\x6d\x67\x2c\x62\x77\x3d\x2f\x5e\x28\x3f\x3a\x63\x6f\x6c\x6f\x72\x7c\x64\x61\x74\x65\x7c\x64\x61\x74\x65\x74\x69\x6d\x65\x7c\x65\x6d\x61\x69\x6c\x7c\x68\x69\x64\x64\x65\x6e\x7c\x6d\x6f\x6e\x74\x68\x7c\x6e\x75\x6d\x62\x65\x72\x7c\x70\x61\x73\x73\x77\x6f\x72\x64\x7c\x72\x61\x6e\x67\x65\x7c\x73\x65\x61\x72\x63\x68\x7c\x74\x65\x6c\x7c\x74\x65\x78\x74\x7c\x74\x69\x6d\x65\x7c\x75\x72\x6c\x7c\x77\x65\x65\x6b\x29\x24\x2f\x69\x2c\x62\x78\x3d\x2f\x5e\x28\x3f\x3a\x61\x62\x6f\x75\x74\x7c\x61\x70\x70\x7c\x61\x70\x70\x5c\x2d\x73\x74\x6f\x72\x61\x67\x65\x7c\x2e\x2b\x5c\x2d\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x7c\x66\x69\x6c\x65\x7c\x77\x69\x64\x67\x65\x74\x29\x3a\x24\x2f\x2c\x62\x79\x3d\x2f\x5e\x28\x3f\x3a\x47\x45\x54\x7c\x48\x45\x41\x44\x29\x24\x2f\x2c\x62\x7a\x3d\x2f\x5e\x5c\x2f\x5c\x2f\x2f\x2c\x62\x41\x3d\x2f\x5c\x3f\x2f\x2c\x62\x42\x3d\x2f\x3c\x73\x63\x72\x69\x70\x74\x5c\x62\x5b\x5e\x3c\x5d\x2a\x28\x3f\x3a\x28\x3f\x21\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x29\x3c\x5b\x5e\x3c\x5d\x2a\x29\x2a\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x2f\x67\x69\x2c\x62\x43\x3d\x2f\x5e\x28\x3f\x3a\x73\x65\x6c\x65\x63\x74\x7c\x74\x65\x78\x74\x61\x72\x65\x61\x29\x2f\x69\x2c\x62\x44\x3d\x2f\x5c\x73\x2b\x2f\x2c\x62\x45\x3d\x2f\x28\x5b\x3f\x26\x5d\x29\x5f\x3d\x5b\x5e\x26\x5d\x2a\x2f\x2c\x62\x46\x3d\x2f\x28\x5e\x7c\x5c\x2d\x29\x28\x5b\x61\x2d\x7a\x5d\x29\x2f\x67\x2c\x62\x47\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x62\x2b\x63\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x7d\x2c\x62\x48\x3d\x2f\x5e\x28\x5b\x5c\x77\x5c\x2b\x5c\x2e\x5c\x2d\x5d\x2b\x3a\x29\x28\x3f\x3a\x5c\x2f\x5c\x2f\x28\x5b\x5e\x5c\x2f\x3f\x23\x3a\x5d\x2a\x29\x28\x3f\x3a\x3a\x28\x5c\x64\x2b\x29\x29\x3f\x29\x3f\x2f\x2c\x62\x49\x3d\x64\x2e\x66\x6e\x2e\x6c\x6f\x61\x64\x2c\x62\x4a\x3d\x7b\x7d\x2c\x62\x4b\x3d\x7b\x7d\x2c\x62\x4c\x2c\x62\x4d\x3b\x74\x72\x79\x7b\x62\x4c\x3d\x63\x2e\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x2e\x68\x72\x65\x66\x7d\x63\x61\x74\x63\x68\x28\x62\x4e\x29\x7b\x62\x4c\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x61\x22\x29\x2c\x62\x4c\x2e\x68\x72\x65\x66\x3d\x22\x22\x2c\x62\x4c\x3d\x62\x4c\x2e\x68\x72\x65\x66\x7d\x62\x4d\x3d\x62\x48\x2e\x65\x78\x65\x63\x28\x62\x4c\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x29\x7c\x7c\x5b\x5d\x2c\x64\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x6c\x6f\x61\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x65\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x21\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x62\x49\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x49\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x69\x66\x28\x21\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x76\x61\x72\x20\x66\x3d\x61\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x20\x22\x29\x3b\x69\x66\x28\x66\x3e\x3d\x30\x29\x7b\x76\x61\x72\x20\x67\x3d\x61\x2e\x73\x6c\x69\x63\x65\x28\x66\x2c\x61\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x61\x3d\x61\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x66\x29\x7d\x76\x61\x72\x20\x68\x3d\x22\x47\x45\x54\x22\x3b\x63\x26\x26\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x29\x3f\x28\x65\x3d\x63\x2c\x63\x3d\x62\x29\x3a\x74\x79\x70\x65\x6f\x66\x20\x63\x3d\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x26\x26\x28\x63\x3d\x64\x2e\x70\x61\x72\x61\x6d\x28\x63\x2c\x64\x2e\x61\x6a\x61\x78\x53\x65\x74\x74\x69\x6e\x67\x73\x2e\x74\x72\x61\x64\x69\x74\x69\x6f\x6e\x61\x6c\x29\x2c\x68\x3d\x22\x50\x4f\x53\x54\x22\x29\x29\x3b\x76\x61\x72\x20\x69\x3d\x74\x68\x69\x73\x3b\x64\x2e\x61\x6a\x61\x78\x28\x7b\x75\x72\x6c\x3a\x61\x2c\x74\x79\x70\x65\x3a\x68\x2c\x64\x61\x74\x61\x54\x79\x70\x65\x3a\x22\x68\x74\x6d\x6c\x22\x2c\x64\x61\x74\x61\x3a\x63\x2c\x63\x6f\x6d\x70\x6c\x65\x74\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x63\x3d\x61\x2e\x72\x65\x73\x70\x6f\x6e\x73\x65\x54\x65\x78\x74\x2c\x61\x2e\x69\x73\x52\x65\x73\x6f\x6c\x76\x65\x64\x28\x29\x26\x26\x28\x61\x2e\x64\x6f\x6e\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x63\x3d\x61\x7d\x29\x2c\x69\x2e\x68\x74\x6d\x6c\x28\x67\x3f\x64\x28\x22\x3c\x64\x69\x76\x3e\x22\x29\x2e\x61\x70\x70\x65\x6e\x64\x28\x63\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x42\x2c\x22\x22\x29\x29\x2e\x66\x69\x6e\x64\x28\x67\x29\x3a\x63\x29\x29\x2c\x65\x26\x26\x69\x2e\x65\x61\x63\x68\x28\x65\x2c\x5b\x63\x2c\x62\x2c\x61\x5d\x29\x7d\x7d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x73\x65\x72\x69\x61\x6c\x69\x7a\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x70\x61\x72\x61\x6d\x28\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x61\x6c\x69\x7a\x65\x41\x72\x72\x61\x79\x28\x29\x29\x7d\x2c\x73\x65\x72\x69\x61\x6c\x69\x7a\x65\x41\x72\x72\x61\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x65\x6e\x74\x73\x3f\x64\x2e\x6d\x61\x6b\x65\x41\x72\x72\x61\x79\x28\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x65\x6e\x74\x73\x29\x3a\x74\x68\x69\x73\x7d\x29\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6e\x61\x6d\x65\x26\x26\x21\x74\x68\x69\x73\x2e\x64\x69\x73\x61\x62\x6c\x65\x64\x26\x26\x28\x74\x68\x69\x73\x2e\x63\x68\x65\x63\x6b\x65\x64\x7c\x7c\x62\x43\x2e\x74\x65\x73\x74\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x7c\x7c\x62\x77\x2e\x74\x65\x73\x74\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x29\x29\x7d\x29\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x64\x28\x74\x68\x69\x73\x29\x2e\x76\x61\x6c\x28\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x3d\x3d\x6e\x75\x6c\x6c\x3f\x6e\x75\x6c\x6c\x3a\x64\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x29\x3f\x64\x2e\x6d\x61\x70\x28\x63\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x7b\x6e\x61\x6d\x65\x3a\x62\x2e\x6e\x61\x6d\x65\x2c\x76\x61\x6c\x75\x65\x3a\x61\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x74\x2c\x22\x5c\x72\x5c\x6e\x22\x29\x7d\x7d\x29\x3a\x7b\x6e\x61\x6d\x65\x3a\x62\x2e\x6e\x61\x6d\x65\x2c\x76\x61\x6c\x75\x65\x3a\x63\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x74\x2c\x22\x5c\x72\x5c\x6e\x22\x29\x7d\x7d\x29\x2e\x67\x65\x74\x28\x29\x7d\x7d\x29\x2c\x64\x2e\x65\x61\x63\x68\x28\x22\x61\x6a\x61\x78\x53\x74\x61\x72\x74\x20\x61\x6a\x61\x78\x53\x74\x6f\x70\x20\x61\x6a\x61\x78\x43\x6f\x6d\x70\x6c\x65\x74\x65\x20\x61\x6a\x61\x78\x45\x72\x72\x6f\x72\x20\x61\x6a\x61\x78\x53\x75\x63\x63\x65\x73\x73\x20\x61\x6a\x61\x78\x53\x65\x6e\x64\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x64\x2e\x66\x6e\x5b\x62\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x62\x69\x6e\x64\x28\x62\x2c\x61\x29\x7d\x7d\x29\x2c\x64\x2e\x65\x61\x63\x68\x28\x5b\x22\x67\x65\x74\x22\x2c\x22\x70\x6f\x73\x74\x22\x5d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x64\x5b\x63\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x65\x2c\x66\x2c\x67\x29\x7b\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x29\x26\x26\x28\x67\x3d\x67\x7c\x7c\x66\x2c\x66\x3d\x65\x2c\x65\x3d\x62\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x61\x6a\x61\x78\x28\x7b\x74\x79\x70\x65\x3a\x63\x2c\x75\x72\x6c\x3a\x61\x2c\x64\x61\x74\x61\x3a\x65\x2c\x73\x75\x63\x63\x65\x73\x73\x3a\x66\x2c\x64\x61\x74\x61\x54\x79\x70\x65\x3a\x67\x7d\x29\x7d\x7d\x29\x2c\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x67\x65\x74\x53\x63\x72\x69\x70\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x67\x65\x74\x28\x61\x2c\x62\x2c\x63\x2c\x22\x73\x63\x72\x69\x70\x74\x22\x29\x7d\x2c\x67\x65\x74\x4a\x53\x4f\x4e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x67\x65\x74\x28\x61\x2c\x62\x2c\x63\x2c\x22\x6a\x73\x6f\x6e\x22\x29\x7d\x2c\x61\x6a\x61\x78\x53\x65\x74\x75\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x62\x3f\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x21\x30\x2c\x61\x2c\x64\x2e\x61\x6a\x61\x78\x53\x65\x74\x74\x69\x6e\x67\x73\x2c\x62\x29\x3a\x28\x62\x3d\x61\x2c\x61\x3d\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x21\x30\x2c\x64\x2e\x61\x6a\x61\x78\x53\x65\x74\x74\x69\x6e\x67\x73\x2c\x62\x29\x29\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x63\x20\x69\x6e\x20\x7b\x63\x6f\x6e\x74\x65\x78\x74\x3a\x31\x2c\x75\x72\x6c\x3a\x31\x7d\x29\x63\x20\x69\x6e\x20\x62\x3f\x61\x5b\x63\x5d\x3d\x62\x5b\x63\x5d\x3a\x63\x20\x69\x6e\x20\x64\x2e\x61\x6a\x61\x78\x53\x65\x74\x74\x69\x6e\x67\x73\x26\x26\x28\x61\x5b\x63\x5d\x3d\x64\x2e\x61\x6a\x61\x78\x53\x65\x74\x74\x69\x6e\x67\x73\x5b\x63\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x2c\x61\x6a\x61\x78\x53\x65\x74\x74\x69\x6e\x67\x73\x3a\x7b\x75\x72\x6c\x3a\x62\x4c\x2c\x69\x73\x4c\x6f\x63\x61\x6c\x3a\x62\x78\x2e\x74\x65\x73\x74\x28\x62\x4d\x5b\x31\x5d\x29\x2c\x67\x6c\x6f\x62\x61\x6c\x3a\x21\x30\x2c\x74\x79\x70\x65\x3a\x22\x47\x45\x54\x22\x2c\x63\x6f\x6e\x74\x65\x6e\x74\x54\x79\x70\x65\x3a\x22\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x78\x2d\x77\x77\x77\x2d\x66\x6f\x72\x6d\x2d\x75\x72\x6c\x65\x6e\x63\x6f\x64\x65\x64\x22\x2c\x70\x72\x6f\x63\x65\x73\x73\x44\x61\x74\x61\x3a\x21\x30\x2c\x61\x73\x79\x6e\x63\x3a\x21\x30\x2c\x61\x63\x63\x65\x70\x74\x73\x3a\x7b\x78\x6d\x6c\x3a\x22\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x78\x6d\x6c\x2c\x20\x74\x65\x78\x74\x2f\x78\x6d\x6c\x22\x2c\x68\x74\x6d\x6c\x3a\x22\x74\x65\x78\x74\x2f\x68\x74\x6d\x6c\x22\x2c\x74\x65\x78\x74\x3a\x22\x74\x65\x78\x74\x2f\x70\x6c\x61\x69\x6e\x22\x2c\x6a\x73\x6f\x6e\x3a\x22\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x6a\x73\x6f\x6e\x2c\x20\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\x2c\x22\x2a\x22\x3a\x22\x2a\x2f\x2a\x22\x7d\x2c\x63\x6f\x6e\x74\x65\x6e\x74\x73\x3a\x7b\x78\x6d\x6c\x3a\x2f\x78\x6d\x6c\x2f\x2c\x68\x74\x6d\x6c\x3a\x2f\x68\x74\x6d\x6c\x2f\x2c\x6a\x73\x6f\x6e\x3a\x2f\x6a\x73\x6f\x6e\x2f\x7d\x2c\x72\x65\x73\x70\x6f\x6e\x73\x65\x46\x69\x65\x6c\x64\x73\x3a\x7b\x78\x6d\x6c\x3a\x22\x72\x65\x73\x70\x6f\x6e\x73\x65\x58\x4d\x4c\x22\x2c\x74\x65\x78\x74\x3a\x22\x72\x65\x73\x70\x6f\x6e\x73\x65\x54\x65\x78\x74\x22\x7d\x2c\x63\x6f\x6e\x76\x65\x72\x74\x65\x72\x73\x3a\x7b\x22\x2a\x20\x74\x65\x78\x74\x22\x3a\x61\x2e\x53\x74\x72\x69\x6e\x67\x2c\x22\x74\x65\x78\x74\x20\x68\x74\x6d\x6c\x22\x3a\x21\x30\x2c\x22\x74\x65\x78\x74\x20\x6a\x73\x6f\x6e\x22\x3a\x64\x2e\x70\x61\x72\x73\x65\x4a\x53\x4f\x4e\x2c\x22\x74\x65\x78\x74\x20\x78\x6d\x6c\x22\x3a\x64\x2e\x70\x61\x72\x73\x65\x58\x4d\x4c\x7d\x7d\x2c\x61\x6a\x61\x78\x50\x72\x65\x66\x69\x6c\x74\x65\x72\x3a\x62\x4f\x28\x62\x4a\x29\x2c\x61\x6a\x61\x78\x54\x72\x61\x6e\x73\x70\x6f\x72\x74\x3a\x62\x4f\x28\x62\x4b\x29\x2c\x61\x6a\x61\x78\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x76\x28\x61\x2c\x63\x2c\x6c\x2c\x6e\x29\x7b\x69\x66\x28\x72\x21\x3d\x3d\x32\x29\x7b\x72\x3d\x32\x2c\x70\x26\x26\x63\x6c\x65\x61\x72\x54\x69\x6d\x65\x6f\x75\x74\x28\x70\x29\x2c\x6f\x3d\x62\x2c\x6d\x3d\x6e\x7c\x7c\x22\x22\x2c\x75\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x3d\x61\x3f\x34\x3a\x30\x3b\x76\x61\x72\x20\x71\x2c\x74\x2c\x76\x2c\x77\x3d\x6c\x3f\x62\x52\x28\x65\x2c\x75\x2c\x6c\x29\x3a\x62\x2c\x78\x2c\x79\x3b\x69\x66\x28\x61\x3e\x3d\x32\x30\x30\x26\x26\x61\x3c\x33\x30\x30\x7c\x7c\x61\x3d\x3d\x3d\x33\x30\x34\x29\x7b\x69\x66\x28\x65\x2e\x69\x66\x4d\x6f\x64\x69\x66\x69\x65\x64\x29\x7b\x69\x66\x28\x78\x3d\x75\x2e\x67\x65\x74\x52\x65\x73\x70\x6f\x6e\x73\x65\x48\x65\x61\x64\x65\x72\x28\x22\x4c\x61\x73\x74\x2d\x4d\x6f\x64\x69\x66\x69\x65\x64\x22\x29\x29\x64\x2e\x6c\x61\x73\x74\x4d\x6f\x64\x69\x66\x69\x65\x64\x5b\x6b\x5d\x3d\x78\x3b\x69\x66\x28\x79\x3d\x75\x2e\x67\x65\x74\x52\x65\x73\x70\x6f\x6e\x73\x65\x48\x65\x61\x64\x65\x72\x28\x22\x45\x74\x61\x67\x22\x29\x29\x64\x2e\x65\x74\x61\x67\x5b\x6b\x5d\x3d\x79\x7d\x69\x66\x28\x61\x3d\x3d\x3d\x33\x30\x34\x29\x63\x3d\x22\x6e\x6f\x74\x6d\x6f\x64\x69\x66\x69\x65\x64\x22\x2c\x71\x3d\x21\x30\x3b\x65\x6c\x73\x65\x20\x74\x72\x79\x7b\x74\x3d\x62\x53\x28\x65\x2c\x77\x29\x2c\x63\x3d\x22\x73\x75\x63\x63\x65\x73\x73\x22\x2c\x71\x3d\x21\x30\x7d\x63\x61\x74\x63\x68\x28\x7a\x29\x7b\x63\x3d\x22\x70\x61\x72\x73\x65\x72\x65\x72\x72\x6f\x72\x22\x2c\x76\x3d\x7a\x7d\x7d\x65\x6c\x73\x65\x7b\x76\x3d\x63\x3b\x69\x66\x28\x21\x63\x7c\x7c\x61\x29\x63\x3d\x22\x65\x72\x72\x6f\x72\x22\x2c\x61\x3c\x30\x26\x26\x28\x61\x3d\x30\x29\x7d\x75\x2e\x73\x74\x61\x74\x75\x73\x3d\x61\x2c\x75\x2e\x73\x74\x61\x74\x75\x73\x54\x65\x78\x74\x3d\x63\x2c\x71\x3f\x68\x2e\x72\x65\x73\x6f\x6c\x76\x65\x57\x69\x74\x68\x28\x66\x2c\x5b\x74\x2c\x63\x2c\x75\x5d\x29\x3a\x68\x2e\x72\x65\x6a\x65\x63\x74\x57\x69\x74\x68\x28\x66\x2c\x5b\x75\x2c\x63\x2c\x76\x5d\x29\x2c\x75\x2e\x73\x74\x61\x74\x75\x73\x43\x6f\x64\x65\x28\x6a\x29\x2c\x6a\x3d\x62\x2c\x73\x26\x26\x67\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x22\x61\x6a\x61\x78\x22\x2b\x28\x71\x3f\x22\x53\x75\x63\x63\x65\x73\x73\x22\x3a\x22\x45\x72\x72\x6f\x72\x22\x29\x2c\x5b\x75\x2c\x65\x2c\x71\x3f\x74\x3a\x76\x5d\x29\x2c\x69\x2e\x72\x65\x73\x6f\x6c\x76\x65\x57\x69\x74\x68\x28\x66\x2c\x5b\x75\x2c\x63\x5d\x29\x2c\x73\x26\x26\x28\x67\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x22\x61\x6a\x61\x78\x43\x6f\x6d\x70\x6c\x65\x74\x65\x22\x2c\x5b\x75\x2c\x65\x5d\x29\x2c\x2d\x2d\x64\x2e\x61\x63\x74\x69\x76\x65\x7c\x7c\x64\x2e\x65\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x22\x61\x6a\x61\x78\x53\x74\x6f\x70\x22\x29\x29\x7d\x7d\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x26\x26\x28\x63\x3d\x61\x2c\x61\x3d\x62\x29\x2c\x63\x3d\x63\x7c\x7c\x7b\x7d\x3b\x76\x61\x72\x20\x65\x3d\x64\x2e\x61\x6a\x61\x78\x53\x65\x74\x75\x70\x28\x7b\x7d\x2c\x63\x29\x2c\x66\x3d\x65\x2e\x63\x6f\x6e\x74\x65\x78\x74\x7c\x7c\x65\x2c\x67\x3d\x66\x21\x3d\x3d\x65\x26\x26\x28\x66\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x7c\x7c\x66\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x64\x29\x3f\x64\x28\x66\x29\x3a\x64\x2e\x65\x76\x65\x6e\x74\x2c\x68\x3d\x64\x2e\x44\x65\x66\x65\x72\x72\x65\x64\x28\x29\x2c\x69\x3d\x64\x2e\x5f\x44\x65\x66\x65\x72\x72\x65\x64\x28\x29\x2c\x6a\x3d\x65\x2e\x73\x74\x61\x74\x75\x73\x43\x6f\x64\x65\x7c\x7c\x7b\x7d\x2c\x6b\x2c\x6c\x3d\x7b\x7d\x2c\x6d\x2c\x6e\x2c\x6f\x2c\x70\x2c\x71\x2c\x72\x3d\x30\x2c\x73\x2c\x74\x2c\x75\x3d\x7b\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x3a\x30\x2c\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x7c\x7c\x28\x6c\x5b\x61\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x46\x2c\x62\x47\x29\x5d\x3d\x62\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x67\x65\x74\x41\x6c\x6c\x52\x65\x73\x70\x6f\x6e\x73\x65\x48\x65\x61\x64\x65\x72\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x72\x3d\x3d\x3d\x32\x3f\x6d\x3a\x6e\x75\x6c\x6c\x7d\x2c\x67\x65\x74\x52\x65\x73\x70\x6f\x6e\x73\x65\x48\x65\x61\x64\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x63\x3b\x69\x66\x28\x72\x3d\x3d\x3d\x32\x29\x7b\x69\x66\x28\x21\x6e\x29\x7b\x6e\x3d\x7b\x7d\x3b\x77\x68\x69\x6c\x65\x28\x63\x3d\x62\x76\x2e\x65\x78\x65\x63\x28\x6d\x29\x29\x6e\x5b\x63\x5b\x31\x5d\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x3d\x63\x5b\x32\x5d\x7d\x63\x3d\x6e\x5b\x61\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x7d\x72\x65\x74\x75\x72\x6e\x20\x63\x3d\x3d\x3d\x62\x3f\x6e\x75\x6c\x6c\x3a\x63\x7d\x2c\x6f\x76\x65\x72\x72\x69\x64\x65\x4d\x69\x6d\x65\x54\x79\x70\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x7c\x7c\x28\x65\x2e\x6d\x69\x6d\x65\x54\x79\x70\x65\x3d\x61\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x61\x62\x6f\x72\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x61\x3d\x61\x7c\x7c\x22\x61\x62\x6f\x72\x74\x22\x2c\x6f\x26\x26\x6f\x2e\x61\x62\x6f\x72\x74\x28\x61\x29\x2c\x76\x28\x30\x2c\x61\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x7d\x3b\x68\x2e\x70\x72\x6f\x6d\x69\x73\x65\x28\x75\x29\x2c\x75\x2e\x73\x75\x63\x63\x65\x73\x73\x3d\x75\x2e\x64\x6f\x6e\x65\x2c\x75\x2e\x65\x72\x72\x6f\x72\x3d\x75\x2e\x66\x61\x69\x6c\x2c\x75\x2e\x63\x6f\x6d\x70\x6c\x65\x74\x65\x3d\x69\x2e\x64\x6f\x6e\x65\x2c\x75\x2e\x73\x74\x61\x74\x75\x73\x43\x6f\x64\x65\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3b\x69\x66\x28\x72\x3c\x32\x29\x66\x6f\x72\x28\x62\x20\x69\x6e\x20\x61\x29\x6a\x5b\x62\x5d\x3d\x5b\x6a\x5b\x62\x5d\x2c\x61\x5b\x62\x5d\x5d\x3b\x65\x6c\x73\x65\x20\x62\x3d\x61\x5b\x75\x2e\x73\x74\x61\x74\x75\x73\x5d\x2c\x75\x2e\x74\x68\x65\x6e\x28\x62\x2c\x62\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x65\x2e\x75\x72\x6c\x3d\x28\x28\x61\x7c\x7c\x65\x2e\x75\x72\x6c\x29\x2b\x22\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x75\x2c\x22\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x7a\x2c\x62\x4d\x5b\x31\x5d\x2b\x22\x2f\x2f\x22\x29\x2c\x65\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\x3d\x64\x2e\x74\x72\x69\x6d\x28\x65\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x7c\x7c\x22\x2a\x22\x29\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2e\x73\x70\x6c\x69\x74\x28\x62\x44\x29\x2c\x65\x2e\x63\x72\x6f\x73\x73\x44\x6f\x6d\x61\x69\x6e\x3d\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x71\x3d\x62\x48\x2e\x65\x78\x65\x63\x28\x65\x2e\x75\x72\x6c\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x29\x2c\x65\x2e\x63\x72\x6f\x73\x73\x44\x6f\x6d\x61\x69\x6e\x3d\x71\x26\x26\x28\x71\x5b\x31\x5d\x21\x3d\x62\x4d\x5b\x31\x5d\x7c\x7c\x71\x5b\x32\x5d\x21\x3d\x62\x4d\x5b\x32\x5d\x7c\x7c\x28\x71\x5b\x33\x5d\x7c\x7c\x28\x71\x5b\x31\x5d\x3d\x3d\x3d\x22\x68\x74\x74\x70\x3a\x22\x3f\x38\x30\x3a\x34\x34\x33\x29\x29\x21\x3d\x28\x62\x4d\x5b\x33\x5d\x7c\x7c\x28\x62\x4d\x5b\x31\x5d\x3d\x3d\x3d\x22\x68\x74\x74\x70\x3a\x22\x3f\x38\x30\x3a\x34\x34\x33\x29\x29\x29\x29\x2c\x65\x2e\x64\x61\x74\x61\x26\x26\x65\x2e\x70\x72\x6f\x63\x65\x73\x73\x44\x61\x74\x61\x26\x26\x74\x79\x70\x65\x6f\x66\x20\x65\x2e\x64\x61\x74\x61\x21\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x65\x2e\x64\x61\x74\x61\x3d\x64\x2e\x70\x61\x72\x61\x6d\x28\x65\x2e\x64\x61\x74\x61\x2c\x65\x2e\x74\x72\x61\x64\x69\x74\x69\x6f\x6e\x61\x6c\x29\x29\x2c\x62\x50\x28\x62\x4a\x2c\x65\x2c\x63\x2c\x75\x29\x3b\x69\x66\x28\x72\x3d\x3d\x3d\x32\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x3b\x73\x3d\x65\x2e\x67\x6c\x6f\x62\x61\x6c\x2c\x65\x2e\x74\x79\x70\x65\x3d\x65\x2e\x74\x79\x70\x65\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x2c\x65\x2e\x68\x61\x73\x43\x6f\x6e\x74\x65\x6e\x74\x3d\x21\x62\x79\x2e\x74\x65\x73\x74\x28\x65\x2e\x74\x79\x70\x65\x29\x2c\x73\x26\x26\x64\x2e\x61\x63\x74\x69\x76\x65\x2b\x2b\x3d\x3d\x3d\x30\x26\x26\x64\x2e\x65\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x22\x61\x6a\x61\x78\x53\x74\x61\x72\x74\x22\x29\x3b\x69\x66\x28\x21\x65\x2e\x68\x61\x73\x43\x6f\x6e\x74\x65\x6e\x74\x29\x7b\x65\x2e\x64\x61\x74\x61\x26\x26\x28\x65\x2e\x75\x72\x6c\x2b\x3d\x28\x62\x41\x2e\x74\x65\x73\x74\x28\x65\x2e\x75\x72\x6c\x29\x3f\x22\x26\x22\x3a\x22\x3f\x22\x29\x2b\x65\x2e\x64\x61\x74\x61\x29\x2c\x6b\x3d\x65\x2e\x75\x72\x6c\x3b\x69\x66\x28\x65\x2e\x63\x61\x63\x68\x65\x3d\x3d\x3d\x21\x31\x29\x7b\x76\x61\x72\x20\x77\x3d\x64\x2e\x6e\x6f\x77\x28\x29\x2c\x78\x3d\x65\x2e\x75\x72\x6c\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x45\x2c\x22\x24\x31\x5f\x3d\x22\x2b\x77\x29\x3b\x65\x2e\x75\x72\x6c\x3d\x78\x2b\x28\x78\x3d\x3d\x3d\x65\x2e\x75\x72\x6c\x3f\x28\x62\x41\x2e\x74\x65\x73\x74\x28\x65\x2e\x75\x72\x6c\x29\x3f\x22\x26\x22\x3a\x22\x3f\x22\x29\x2b\x22\x5f\x3d\x22\x2b\x77\x3a\x22\x22\x29\x7d\x7d\x69\x66\x28\x65\x2e\x64\x61\x74\x61\x26\x26\x65\x2e\x68\x61\x73\x43\x6f\x6e\x74\x65\x6e\x74\x26\x26\x65\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x54\x79\x70\x65\x21\x3d\x3d\x21\x31\x7c\x7c\x63\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x54\x79\x70\x65\x29\x6c\x5b\x22\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65\x22\x5d\x3d\x65\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x54\x79\x70\x65\x3b\x65\x2e\x69\x66\x4d\x6f\x64\x69\x66\x69\x65\x64\x26\x26\x28\x6b\x3d\x6b\x7c\x7c\x65\x2e\x75\x72\x6c\x2c\x64\x2e\x6c\x61\x73\x74\x4d\x6f\x64\x69\x66\x69\x65\x64\x5b\x6b\x5d\x26\x26\x28\x6c\x5b\x22\x49\x66\x2d\x4d\x6f\x64\x69\x66\x69\x65\x64\x2d\x53\x69\x6e\x63\x65\x22\x5d\x3d\x64\x2e\x6c\x61\x73\x74\x4d\x6f\x64\x69\x66\x69\x65\x64\x5b\x6b\x5d\x29\x2c\x64\x2e\x65\x74\x61\x67\x5b\x6b\x5d\x26\x26\x28\x6c\x5b\x22\x49\x66\x2d\x4e\x6f\x6e\x65\x2d\x4d\x61\x74\x63\x68\x22\x5d\x3d\x64\x2e\x65\x74\x61\x67\x5b\x6b\x5d\x29\x29\x2c\x6c\x2e\x41\x63\x63\x65\x70\x74\x3d\x65\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\x5b\x30\x5d\x26\x26\x65\x2e\x61\x63\x63\x65\x70\x74\x73\x5b\x65\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\x5b\x30\x5d\x5d\x3f\x65\x2e\x61\x63\x63\x65\x70\x74\x73\x5b\x65\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\x5b\x30\x5d\x5d\x2b\x28\x65\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\x5b\x30\x5d\x21\x3d\x3d\x22\x2a\x22\x3f\x22\x2c\x20\x2a\x2f\x2a\x3b\x20\x71\x3d\x30\x2e\x30\x31\x22\x3a\x22\x22\x29\x3a\x65\x2e\x61\x63\x63\x65\x70\x74\x73\x5b\x22\x2a\x22\x5d\x3b\x66\x6f\x72\x28\x74\x20\x69\x6e\x20\x65\x2e\x68\x65\x61\x64\x65\x72\x73\x29\x75\x2e\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x28\x74\x2c\x65\x2e\x68\x65\x61\x64\x65\x72\x73\x5b\x74\x5d\x29\x3b\x69\x66\x28\x65\x2e\x62\x65\x66\x6f\x72\x65\x53\x65\x6e\x64\x26\x26\x28\x65\x2e\x62\x65\x66\x6f\x72\x65\x53\x65\x6e\x64\x2e\x63\x61\x6c\x6c\x28\x66\x2c\x75\x2c\x65\x29\x3d\x3d\x3d\x21\x31\x7c\x7c\x72\x3d\x3d\x3d\x32\x29\x29\x7b\x75\x2e\x61\x62\x6f\x72\x74\x28\x29\x3b\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\x66\x6f\x72\x28\x74\x20\x69\x6e\x20\x7b\x73\x75\x63\x63\x65\x73\x73\x3a\x31\x2c\x65\x72\x72\x6f\x72\x3a\x31\x2c\x63\x6f\x6d\x70\x6c\x65\x74\x65\x3a\x31\x7d\x29\x75\x5b\x74\x5d\x28\x65\x5b\x74\x5d\x29\x3b\x6f\x3d\x62\x50\x28\x62\x4b\x2c\x65\x2c\x63\x2c\x75\x29\x3b\x69\x66\x28\x6f\x29\x7b\x75\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x3d\x31\x2c\x73\x26\x26\x67\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x22\x61\x6a\x61\x78\x53\x65\x6e\x64\x22\x2c\x5b\x75\x2c\x65\x5d\x29\x2c\x65\x2e\x61\x73\x79\x6e\x63\x26\x26\x65\x2e\x74\x69\x6d\x65\x6f\x75\x74\x3e\x30\x26\x26\x28\x70\x3d\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x75\x2e\x61\x62\x6f\x72\x74\x28\x22\x74\x69\x6d\x65\x6f\x75\x74\x22\x29\x7d\x2c\x65\x2e\x74\x69\x6d\x65\x6f\x75\x74\x29\x29\x3b\x74\x72\x79\x7b\x72\x3d\x31\x2c\x6f\x2e\x73\x65\x6e\x64\x28\x6c\x2c\x76\x29\x7d\x63\x61\x74\x63\x68\x28\x79\x29\x7b\x73\x74\x61\x74\x75\x73\x3c\x32\x3f\x76\x28\x2d\x31\x2c\x79\x29\x3a\x64\x2e\x65\x72\x72\x6f\x72\x28\x79\x29\x7d\x7d\x65\x6c\x73\x65\x20\x76\x28\x2d\x31\x2c\x22\x4e\x6f\x20\x54\x72\x61\x6e\x73\x70\x6f\x72\x74\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x75\x7d\x2c\x70\x61\x72\x61\x6d\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x76\x61\x72\x20\x65\x3d\x5b\x5d\x2c\x66\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x62\x3d\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x3f\x62\x28\x29\x3a\x62\x2c\x65\x5b\x65\x2e\x6c\x65\x6e\x67\x74\x68\x5d\x3d\x65\x6e\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x61\x29\x2b\x22\x3d\x22\x2b\x65\x6e\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x62\x29\x7d\x3b\x63\x3d\x3d\x3d\x62\x26\x26\x28\x63\x3d\x64\x2e\x61\x6a\x61\x78\x53\x65\x74\x74\x69\x6e\x67\x73\x2e\x74\x72\x61\x64\x69\x74\x69\x6f\x6e\x61\x6c\x29\x3b\x69\x66\x28\x64\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x61\x29\x7c\x7c\x61\x2e\x6a\x71\x75\x65\x72\x79\x26\x26\x21\x64\x2e\x69\x73\x50\x6c\x61\x69\x6e\x4f\x62\x6a\x65\x63\x74\x28\x61\x29\x29\x64\x2e\x65\x61\x63\x68\x28\x61\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x28\x74\x68\x69\x73\x2e\x6e\x61\x6d\x65\x2c\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x29\x7d\x29\x3b\x65\x6c\x73\x65\x20\x66\x6f\x72\x28\x76\x61\x72\x20\x67\x20\x69\x6e\x20\x61\x29\x62\x51\x28\x67\x2c\x61\x5b\x67\x5d\x2c\x63\x2c\x66\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x2e\x6a\x6f\x69\x6e\x28\x22\x26\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x72\x2c\x22\x2b\x22\x29\x7d\x7d\x29\x2c\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x61\x63\x74\x69\x76\x65\x3a\x30\x2c\x6c\x61\x73\x74\x4d\x6f\x64\x69\x66\x69\x65\x64\x3a\x7b\x7d\x2c\x65\x74\x61\x67\x3a\x7b\x7d\x7d\x29\x3b\x76\x61\x72\x20\x62\x54\x3d\x64\x2e\x6e\x6f\x77\x28\x29\x2c\x62\x55\x3d\x2f\x28\x5c\x3d\x29\x5c\x3f\x28\x26\x7c\x24\x29\x7c\x5c\x3f\x5c\x3f\x2f\x69\x3b\x64\x2e\x61\x6a\x61\x78\x53\x65\x74\x75\x70\x28\x7b\x6a\x73\x6f\x6e\x70\x3a\x22\x63\x61\x6c\x6c\x62\x61\x63\x6b\x22\x2c\x6a\x73\x6f\x6e\x70\x43\x61\x6c\x6c\x62\x61\x63\x6b\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x65\x78\x70\x61\x6e\x64\x6f\x2b\x22\x5f\x22\x2b\x62\x54\x2b\x2b\x7d\x7d\x29\x2c\x64\x2e\x61\x6a\x61\x78\x50\x72\x65\x66\x69\x6c\x74\x65\x72\x28\x22\x6a\x73\x6f\x6e\x20\x6a\x73\x6f\x6e\x70\x22\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x2c\x63\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x3d\x74\x79\x70\x65\x6f\x66\x20\x62\x2e\x64\x61\x74\x61\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x3b\x69\x66\x28\x62\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\x5b\x30\x5d\x3d\x3d\x3d\x22\x6a\x73\x6f\x6e\x70\x22\x7c\x7c\x63\x2e\x6a\x73\x6f\x6e\x70\x43\x61\x6c\x6c\x62\x61\x63\x6b\x7c\x7c\x63\x2e\x6a\x73\x6f\x6e\x70\x21\x3d\x6e\x75\x6c\x6c\x7c\x7c\x62\x2e\x6a\x73\x6f\x6e\x70\x21\x3d\x3d\x21\x31\x26\x26\x28\x62\x55\x2e\x74\x65\x73\x74\x28\x62\x2e\x75\x72\x6c\x29\x7c\x7c\x66\x26\x26\x62\x55\x2e\x74\x65\x73\x74\x28\x62\x2e\x64\x61\x74\x61\x29\x29\x29\x7b\x76\x61\x72\x20\x67\x2c\x68\x3d\x62\x2e\x6a\x73\x6f\x6e\x70\x43\x61\x6c\x6c\x62\x61\x63\x6b\x3d\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x2e\x6a\x73\x6f\x6e\x70\x43\x61\x6c\x6c\x62\x61\x63\x6b\x29\x3f\x62\x2e\x6a\x73\x6f\x6e\x70\x43\x61\x6c\x6c\x62\x61\x63\x6b\x28\x29\x3a\x62\x2e\x6a\x73\x6f\x6e\x70\x43\x61\x6c\x6c\x62\x61\x63\x6b\x2c\x69\x3d\x61\x5b\x68\x5d\x2c\x6a\x3d\x62\x2e\x75\x72\x6c\x2c\x6b\x3d\x62\x2e\x64\x61\x74\x61\x2c\x6c\x3d\x22\x24\x31\x22\x2b\x68\x2b\x22\x24\x32\x22\x2c\x6d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x61\x5b\x68\x5d\x3d\x69\x2c\x67\x26\x26\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x29\x26\x26\x61\x5b\x68\x5d\x28\x67\x5b\x30\x5d\x29\x7d\x3b\x62\x2e\x6a\x73\x6f\x6e\x70\x21\x3d\x3d\x21\x31\x26\x26\x28\x6a\x3d\x6a\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x55\x2c\x6c\x29\x2c\x62\x2e\x75\x72\x6c\x3d\x3d\x3d\x6a\x26\x26\x28\x66\x26\x26\x28\x6b\x3d\x6b\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x55\x2c\x6c\x29\x29\x2c\x62\x2e\x64\x61\x74\x61\x3d\x3d\x3d\x6b\x26\x26\x28\x6a\x2b\x3d\x28\x2f\x5c\x3f\x2f\x2e\x74\x65\x73\x74\x28\x6a\x29\x3f\x22\x26\x22\x3a\x22\x3f\x22\x29\x2b\x62\x2e\x6a\x73\x6f\x6e\x70\x2b\x22\x3d\x22\x2b\x68\x29\x29\x29\x2c\x62\x2e\x75\x72\x6c\x3d\x6a\x2c\x62\x2e\x64\x61\x74\x61\x3d\x6b\x2c\x61\x5b\x68\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x67\x3d\x5b\x61\x5d\x7d\x2c\x65\x2e\x74\x68\x65\x6e\x28\x6d\x2c\x6d\x29\x2c\x62\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x72\x73\x5b\x22\x73\x63\x72\x69\x70\x74\x20\x6a\x73\x6f\x6e\x22\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x67\x7c\x7c\x64\x2e\x65\x72\x72\x6f\x72\x28\x68\x2b\x22\x20\x77\x61\x73\x20\x6e\x6f\x74\x20\x63\x61\x6c\x6c\x65\x64\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x67\x5b\x30\x5d\x7d\x2c\x62\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\x5b\x30\x5d\x3d\x22\x6a\x73\x6f\x6e\x22\x3b\x72\x65\x74\x75\x72\x6e\x22\x73\x63\x72\x69\x70\x74\x22\x7d\x7d\x29\x2c\x64\x2e\x61\x6a\x61\x78\x53\x65\x74\x75\x70\x28\x7b\x61\x63\x63\x65\x70\x74\x73\x3a\x7b\x73\x63\x72\x69\x70\x74\x3a\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x2c\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x2c\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x65\x63\x6d\x61\x73\x63\x72\x69\x70\x74\x2c\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x78\x2d\x65\x63\x6d\x61\x73\x63\x72\x69\x70\x74\x22\x7d\x2c\x63\x6f\x6e\x74\x65\x6e\x74\x73\x3a\x7b\x73\x63\x72\x69\x70\x74\x3a\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x7c\x65\x63\x6d\x61\x73\x63\x72\x69\x70\x74\x2f\x7d\x2c\x63\x6f\x6e\x76\x65\x72\x74\x65\x72\x73\x3a\x7b\x22\x74\x65\x78\x74\x20\x73\x63\x72\x69\x70\x74\x22\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x64\x2e\x67\x6c\x6f\x62\x61\x6c\x45\x76\x61\x6c\x28\x61\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x7d\x7d\x29\x2c\x64\x2e\x61\x6a\x61\x78\x50\x72\x65\x66\x69\x6c\x74\x65\x72\x28\x22\x73\x63\x72\x69\x70\x74\x22\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x61\x2e\x63\x61\x63\x68\x65\x3d\x3d\x3d\x62\x26\x26\x28\x61\x2e\x63\x61\x63\x68\x65\x3d\x21\x31\x29\x2c\x61\x2e\x63\x72\x6f\x73\x73\x44\x6f\x6d\x61\x69\x6e\x26\x26\x28\x61\x2e\x74\x79\x70\x65\x3d\x22\x47\x45\x54\x22\x2c\x61\x2e\x67\x6c\x6f\x62\x61\x6c\x3d\x21\x31\x29\x7d\x29\x2c\x64\x2e\x61\x6a\x61\x78\x54\x72\x61\x6e\x73\x70\x6f\x72\x74\x28\x22\x73\x63\x72\x69\x70\x74\x22\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x61\x2e\x63\x72\x6f\x73\x73\x44\x6f\x6d\x61\x69\x6e\x29\x7b\x76\x61\x72\x20\x64\x2c\x65\x3d\x63\x2e\x68\x65\x61\x64\x7c\x7c\x63\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x68\x65\x61\x64\x22\x29\x5b\x30\x5d\x7c\x7c\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x72\x65\x74\x75\x72\x6e\x7b\x73\x65\x6e\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x66\x2c\x67\x29\x7b\x64\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x73\x63\x72\x69\x70\x74\x22\x29\x2c\x64\x2e\x61\x73\x79\x6e\x63\x3d\x22\x61\x73\x79\x6e\x63\x22\x2c\x61\x2e\x73\x63\x72\x69\x70\x74\x43\x68\x61\x72\x73\x65\x74\x26\x26\x28\x64\x2e\x63\x68\x61\x72\x73\x65\x74\x3d\x61\x2e\x73\x63\x72\x69\x70\x74\x43\x68\x61\x72\x73\x65\x74\x29\x2c\x64\x2e\x73\x72\x63\x3d\x61\x2e\x75\x72\x6c\x2c\x64\x2e\x6f\x6e\x6c\x6f\x61\x64\x3d\x64\x2e\x6f\x6e\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6e\x67\x65\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x69\x66\x28\x21\x64\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x7c\x7c\x2f\x6c\x6f\x61\x64\x65\x64\x7c\x63\x6f\x6d\x70\x6c\x65\x74\x65\x2f\x2e\x74\x65\x73\x74\x28\x64\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x29\x29\x64\x2e\x6f\x6e\x6c\x6f\x61\x64\x3d\x64\x2e\x6f\x6e\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6e\x67\x65\x3d\x6e\x75\x6c\x6c\x2c\x65\x26\x26\x64\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x26\x26\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x64\x29\x2c\x64\x3d\x62\x2c\x63\x7c\x7c\x67\x28\x32\x30\x30\x2c\x22\x73\x75\x63\x63\x65\x73\x73\x22\x29\x7d\x2c\x65\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x64\x2c\x65\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x7d\x2c\x61\x62\x6f\x72\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x64\x26\x26\x64\x2e\x6f\x6e\x6c\x6f\x61\x64\x28\x30\x2c\x31\x29\x7d\x7d\x7d\x7d\x29\x3b\x76\x61\x72\x20\x62\x56\x3d\x64\x2e\x6e\x6f\x77\x28\x29\x2c\x62\x57\x2c\x62\x58\x3b\x64\x2e\x61\x6a\x61\x78\x53\x65\x74\x74\x69\x6e\x67\x73\x2e\x78\x68\x72\x3d\x61\x2e\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x3f\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x74\x68\x69\x73\x2e\x69\x73\x4c\x6f\x63\x61\x6c\x26\x26\x62\x5a\x28\x29\x7c\x7c\x62\x24\x28\x29\x7d\x3a\x62\x5a\x2c\x62\x58\x3d\x64\x2e\x61\x6a\x61\x78\x53\x65\x74\x74\x69\x6e\x67\x73\x2e\x78\x68\x72\x28\x29\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x61\x6a\x61\x78\x3d\x21\x21\x62\x58\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x63\x6f\x72\x73\x3d\x62\x58\x26\x26\x22\x77\x69\x74\x68\x43\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73\x22\x69\x6e\x20\x62\x58\x2c\x62\x58\x3d\x62\x2c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x61\x6a\x61\x78\x26\x26\x64\x2e\x61\x6a\x61\x78\x54\x72\x61\x6e\x73\x70\x6f\x72\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x21\x61\x2e\x63\x72\x6f\x73\x73\x44\x6f\x6d\x61\x69\x6e\x7c\x7c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x63\x6f\x72\x73\x29\x7b\x76\x61\x72\x20\x63\x3b\x72\x65\x74\x75\x72\x6e\x7b\x73\x65\x6e\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x2c\x66\x29\x7b\x76\x61\x72\x20\x67\x3d\x61\x2e\x78\x68\x72\x28\x29\x2c\x68\x2c\x69\x3b\x61\x2e\x75\x73\x65\x72\x6e\x61\x6d\x65\x3f\x67\x2e\x6f\x70\x65\x6e\x28\x61\x2e\x74\x79\x70\x65\x2c\x61\x2e\x75\x72\x6c\x2c\x61\x2e\x61\x73\x79\x6e\x63\x2c\x61\x2e\x75\x73\x65\x72\x6e\x61\x6d\x65\x2c\x61\x2e\x70\x61\x73\x73\x77\x6f\x72\x64\x29\x3a\x67\x2e\x6f\x70\x65\x6e\x28\x61\x2e\x74\x79\x70\x65\x2c\x61\x2e\x75\x72\x6c\x2c\x61\x2e\x61\x73\x79\x6e\x63\x29\x3b\x69\x66\x28\x61\x2e\x78\x68\x72\x46\x69\x65\x6c\x64\x73\x29\x66\x6f\x72\x28\x69\x20\x69\x6e\x20\x61\x2e\x78\x68\x72\x46\x69\x65\x6c\x64\x73\x29\x67\x5b\x69\x5d\x3d\x61\x2e\x78\x68\x72\x46\x69\x65\x6c\x64\x73\x5b\x69\x5d\x3b\x61\x2e\x6d\x69\x6d\x65\x54\x79\x70\x65\x26\x26\x67\x2e\x6f\x76\x65\x72\x72\x69\x64\x65\x4d\x69\x6d\x65\x54\x79\x70\x65\x26\x26\x67\x2e\x6f\x76\x65\x72\x72\x69\x64\x65\x4d\x69\x6d\x65\x54\x79\x70\x65\x28\x61\x2e\x6d\x69\x6d\x65\x54\x79\x70\x65\x29\x2c\x21\x61\x2e\x63\x72\x6f\x73\x73\x44\x6f\x6d\x61\x69\x6e\x26\x26\x21\x65\x5b\x22\x58\x2d\x52\x65\x71\x75\x65\x73\x74\x65\x64\x2d\x57\x69\x74\x68\x22\x5d\x26\x26\x28\x65\x5b\x22\x58\x2d\x52\x65\x71\x75\x65\x73\x74\x65\x64\x2d\x57\x69\x74\x68\x22\x5d\x3d\x22\x58\x4d\x4c\x48\x74\x74\x70\x52\x65\x71\x75\x65\x73\x74\x22\x29\x3b\x74\x72\x79\x7b\x66\x6f\x72\x28\x69\x20\x69\x6e\x20\x65\x29\x67\x2e\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x28\x69\x2c\x65\x5b\x69\x5d\x29\x7d\x63\x61\x74\x63\x68\x28\x6a\x29\x7b\x7d\x67\x2e\x73\x65\x6e\x64\x28\x61\x2e\x68\x61\x73\x43\x6f\x6e\x74\x65\x6e\x74\x26\x26\x61\x2e\x64\x61\x74\x61\x7c\x7c\x6e\x75\x6c\x6c\x29\x2c\x63\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x2c\x69\x29\x7b\x76\x61\x72\x20\x6a\x2c\x6b\x2c\x6c\x2c\x6d\x2c\x6e\x3b\x74\x72\x79\x7b\x69\x66\x28\x63\x26\x26\x28\x69\x7c\x7c\x67\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x3d\x3d\x3d\x34\x29\x29\x7b\x63\x3d\x62\x2c\x68\x26\x26\x28\x67\x2e\x6f\x6e\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6e\x67\x65\x3d\x64\x2e\x6e\x6f\x6f\x70\x2c\x64\x65\x6c\x65\x74\x65\x20\x62\x57\x5b\x68\x5d\x29\x3b\x69\x66\x28\x69\x29\x67\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x21\x3d\x3d\x34\x26\x26\x67\x2e\x61\x62\x6f\x72\x74\x28\x29\x3b\x65\x6c\x73\x65\x7b\x6a\x3d\x67\x2e\x73\x74\x61\x74\x75\x73\x2c\x6c\x3d\x67\x2e\x67\x65\x74\x41\x6c\x6c\x52\x65\x73\x70\x6f\x6e\x73\x65\x48\x65\x61\x64\x65\x72\x73\x28\x29\x2c\x6d\x3d\x7b\x7d\x2c\x6e\x3d\x67\x2e\x72\x65\x73\x70\x6f\x6e\x73\x65\x58\x4d\x4c\x2c\x6e\x26\x26\x6e\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x26\x26\x28\x6d\x2e\x78\x6d\x6c\x3d\x6e\x29\x2c\x6d\x2e\x74\x65\x78\x74\x3d\x67\x2e\x72\x65\x73\x70\x6f\x6e\x73\x65\x54\x65\x78\x74\x3b\x74\x72\x79\x7b\x6b\x3d\x67\x2e\x73\x74\x61\x74\x75\x73\x54\x65\x78\x74\x7d\x63\x61\x74\x63\x68\x28\x6f\x29\x7b\x6b\x3d\x22\x22\x7d\x6a\x7c\x7c\x21\x61\x2e\x69\x73\x4c\x6f\x63\x61\x6c\x7c\x7c\x61\x2e\x63\x72\x6f\x73\x73\x44\x6f\x6d\x61\x69\x6e\x3f\x6a\x3d\x3d\x3d\x31\x32\x32\x33\x26\x26\x28\x6a\x3d\x32\x30\x34\x29\x3a\x6a\x3d\x6d\x2e\x74\x65\x78\x74\x3f\x32\x30\x30\x3a\x34\x30\x34\x7d\x7d\x7d\x63\x61\x74\x63\x68\x28\x70\x29\x7b\x69\x7c\x7c\x66\x28\x2d\x31\x2c\x70\x29\x7d\x6d\x26\x26\x66\x28\x6a\x2c\x6b\x2c\x6d\x2c\x6c\x29\x7d\x2c\x61\x2e\x61\x73\x79\x6e\x63\x26\x26\x67\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x21\x3d\x3d\x34\x3f\x28\x62\x57\x7c\x7c\x28\x62\x57\x3d\x7b\x7d\x2c\x62\x59\x28\x29\x29\x2c\x68\x3d\x62\x56\x2b\x2b\x2c\x67\x2e\x6f\x6e\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6e\x67\x65\x3d\x62\x57\x5b\x68\x5d\x3d\x63\x29\x3a\x63\x28\x29\x7d\x2c\x61\x62\x6f\x72\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x63\x26\x26\x63\x28\x30\x2c\x31\x29\x7d\x7d\x7d\x7d\x29\x3b\x76\x61\x72\x20\x62\x5f\x3d\x7b\x7d\x2c\x63\x61\x3d\x2f\x5e\x28\x3f\x3a\x74\x6f\x67\x67\x6c\x65\x7c\x73\x68\x6f\x77\x7c\x68\x69\x64\x65\x29\x24\x2f\x2c\x63\x62\x3d\x2f\x5e\x28\x5b\x2b\x5c\x2d\x5d\x3d\x29\x3f\x28\x5b\x5c\x64\x2b\x2e\x5c\x2d\x5d\x2b\x29\x28\x5b\x61\x2d\x7a\x25\x5d\x2a\x29\x24\x2f\x69\x2c\x63\x63\x2c\x63\x64\x3d\x5b\x5b\x22\x68\x65\x69\x67\x68\x74\x22\x2c\x22\x6d\x61\x72\x67\x69\x6e\x54\x6f\x70\x22\x2c\x22\x6d\x61\x72\x67\x69\x6e\x42\x6f\x74\x74\x6f\x6d\x22\x2c\x22\x70\x61\x64\x64\x69\x6e\x67\x54\x6f\x70\x22\x2c\x22\x70\x61\x64\x64\x69\x6e\x67\x42\x6f\x74\x74\x6f\x6d\x22\x5d\x2c\x5b\x22\x77\x69\x64\x74\x68\x22\x2c\x22\x6d\x61\x72\x67\x69\x6e\x4c\x65\x66\x74\x22\x2c\x22\x6d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x22\x2c\x22\x70\x61\x64\x64\x69\x6e\x67\x4c\x65\x66\x74\x22\x2c\x22\x70\x61\x64\x64\x69\x6e\x67\x52\x69\x67\x68\x74\x22\x5d\x2c\x5b\x22\x6f\x70\x61\x63\x69\x74\x79\x22\x5d\x5d\x3b\x64\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x73\x68\x6f\x77\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x65\x2c\x66\x3b\x69\x66\x28\x61\x7c\x7c\x61\x3d\x3d\x3d\x30\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x63\x65\x28\x22\x73\x68\x6f\x77\x22\x2c\x33\x29\x2c\x61\x2c\x62\x2c\x63\x29\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x67\x3d\x30\x2c\x68\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x67\x3c\x68\x3b\x67\x2b\x2b\x29\x65\x3d\x74\x68\x69\x73\x5b\x67\x5d\x2c\x66\x3d\x65\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x2c\x21\x64\x2e\x5f\x64\x61\x74\x61\x28\x65\x2c\x22\x6f\x6c\x64\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x26\x26\x66\x3d\x3d\x3d\x22\x6e\x6f\x6e\x65\x22\x26\x26\x28\x66\x3d\x65\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x22\x29\x2c\x66\x3d\x3d\x3d\x22\x22\x26\x26\x64\x2e\x63\x73\x73\x28\x65\x2c\x22\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x3d\x3d\x3d\x22\x6e\x6f\x6e\x65\x22\x26\x26\x64\x2e\x5f\x64\x61\x74\x61\x28\x65\x2c\x22\x6f\x6c\x64\x64\x69\x73\x70\x6c\x61\x79\x22\x2c\x63\x66\x28\x65\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x29\x3b\x66\x6f\x72\x28\x67\x3d\x30\x3b\x67\x3c\x68\x3b\x67\x2b\x2b\x29\x7b\x65\x3d\x74\x68\x69\x73\x5b\x67\x5d\x2c\x66\x3d\x65\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3b\x69\x66\x28\x66\x3d\x3d\x3d\x22\x22\x7c\x7c\x66\x3d\x3d\x3d\x22\x6e\x6f\x6e\x65\x22\x29\x65\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x64\x2e\x5f\x64\x61\x74\x61\x28\x65\x2c\x22\x6f\x6c\x64\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x7c\x7c\x22\x22\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x68\x69\x64\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x69\x66\x28\x61\x7c\x7c\x61\x3d\x3d\x3d\x30\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x63\x65\x28\x22\x68\x69\x64\x65\x22\x2c\x33\x29\x2c\x61\x2c\x62\x2c\x63\x29\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x65\x3d\x30\x2c\x66\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x65\x3c\x66\x3b\x65\x2b\x2b\x29\x7b\x76\x61\x72\x20\x67\x3d\x64\x2e\x63\x73\x73\x28\x74\x68\x69\x73\x5b\x65\x5d\x2c\x22\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x3b\x67\x21\x3d\x3d\x22\x6e\x6f\x6e\x65\x22\x26\x26\x21\x64\x2e\x5f\x64\x61\x74\x61\x28\x74\x68\x69\x73\x5b\x65\x5d\x2c\x22\x6f\x6c\x64\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x26\x26\x64\x2e\x5f\x64\x61\x74\x61\x28\x74\x68\x69\x73\x5b\x65\x5d\x2c\x22\x6f\x6c\x64\x64\x69\x73\x70\x6c\x61\x79\x22\x2c\x67\x29\x7d\x66\x6f\x72\x28\x65\x3d\x30\x3b\x65\x3c\x66\x3b\x65\x2b\x2b\x29\x74\x68\x69\x73\x5b\x65\x5d\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x6e\x6f\x6e\x65\x22\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x5f\x74\x6f\x67\x67\x6c\x65\x3a\x64\x2e\x66\x6e\x2e\x74\x6f\x67\x67\x6c\x65\x2c\x74\x6f\x67\x67\x6c\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x65\x3d\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x3b\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x26\x26\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x3f\x74\x68\x69\x73\x2e\x5f\x74\x6f\x67\x67\x6c\x65\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3a\x61\x3d\x3d\x6e\x75\x6c\x6c\x7c\x7c\x65\x3f\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x62\x3d\x65\x3f\x61\x3a\x64\x28\x74\x68\x69\x73\x29\x2e\x69\x73\x28\x22\x3a\x68\x69\x64\x64\x65\x6e\x22\x29\x3b\x64\x28\x74\x68\x69\x73\x29\x5b\x62\x3f\x22\x73\x68\x6f\x77\x22\x3a\x22\x68\x69\x64\x65\x22\x5d\x28\x29\x7d\x29\x3a\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x63\x65\x28\x22\x74\x6f\x67\x67\x6c\x65\x22\x2c\x33\x29\x2c\x61\x2c\x62\x2c\x63\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x66\x61\x64\x65\x54\x6f\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\x22\x3a\x68\x69\x64\x64\x65\x6e\x22\x29\x2e\x63\x73\x73\x28\x22\x6f\x70\x61\x63\x69\x74\x79\x22\x2c\x30\x29\x2e\x73\x68\x6f\x77\x28\x29\x2e\x65\x6e\x64\x28\x29\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x7b\x6f\x70\x61\x63\x69\x74\x79\x3a\x62\x7d\x2c\x61\x2c\x63\x2c\x64\x29\x7d\x2c\x61\x6e\x69\x6d\x61\x74\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x3d\x64\x2e\x73\x70\x65\x65\x64\x28\x62\x2c\x63\x2c\x65\x29\x3b\x69\x66\x28\x64\x2e\x69\x73\x45\x6d\x70\x74\x79\x4f\x62\x6a\x65\x63\x74\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x2e\x63\x6f\x6d\x70\x6c\x65\x74\x65\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x5b\x66\x2e\x71\x75\x65\x75\x65\x3d\x3d\x3d\x21\x31\x3f\x22\x65\x61\x63\x68\x22\x3a\x22\x71\x75\x65\x75\x65\x22\x5d\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x62\x3d\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x66\x29\x2c\x63\x2c\x65\x3d\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x2c\x67\x3d\x65\x26\x26\x64\x28\x74\x68\x69\x73\x29\x2e\x69\x73\x28\x22\x3a\x68\x69\x64\x64\x65\x6e\x22\x29\x2c\x68\x3d\x74\x68\x69\x73\x3b\x66\x6f\x72\x28\x63\x20\x69\x6e\x20\x61\x29\x7b\x76\x61\x72\x20\x69\x3d\x64\x2e\x63\x61\x6d\x65\x6c\x43\x61\x73\x65\x28\x63\x29\x3b\x63\x21\x3d\x3d\x69\x26\x26\x28\x61\x5b\x69\x5d\x3d\x61\x5b\x63\x5d\x2c\x64\x65\x6c\x65\x74\x65\x20\x61\x5b\x63\x5d\x2c\x63\x3d\x69\x29\x3b\x69\x66\x28\x61\x5b\x63\x5d\x3d\x3d\x3d\x22\x68\x69\x64\x65\x22\x26\x26\x67\x7c\x7c\x61\x5b\x63\x5d\x3d\x3d\x3d\x22\x73\x68\x6f\x77\x22\x26\x26\x21\x67\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x2e\x63\x6f\x6d\x70\x6c\x65\x74\x65\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x29\x3b\x69\x66\x28\x65\x26\x26\x28\x63\x3d\x3d\x3d\x22\x68\x65\x69\x67\x68\x74\x22\x7c\x7c\x63\x3d\x3d\x3d\x22\x77\x69\x64\x74\x68\x22\x29\x29\x7b\x62\x2e\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3d\x5b\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x76\x65\x72\x66\x6c\x6f\x77\x2c\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x76\x65\x72\x66\x6c\x6f\x77\x58\x2c\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x76\x65\x72\x66\x6c\x6f\x77\x59\x5d\x3b\x69\x66\x28\x64\x2e\x63\x73\x73\x28\x74\x68\x69\x73\x2c\x22\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x3d\x3d\x3d\x22\x69\x6e\x6c\x69\x6e\x65\x22\x26\x26\x64\x2e\x63\x73\x73\x28\x74\x68\x69\x73\x2c\x22\x66\x6c\x6f\x61\x74\x22\x29\x3d\x3d\x3d\x22\x6e\x6f\x6e\x65\x22\x29\x69\x66\x28\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x69\x6e\x6c\x69\x6e\x65\x42\x6c\x6f\x63\x6b\x4e\x65\x65\x64\x73\x4c\x61\x79\x6f\x75\x74\x29\x7b\x76\x61\x72\x20\x6a\x3d\x63\x66\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x3b\x6a\x3d\x3d\x3d\x22\x69\x6e\x6c\x69\x6e\x65\x22\x3f\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x69\x6e\x6c\x69\x6e\x65\x2d\x62\x6c\x6f\x63\x6b\x22\x3a\x28\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x69\x6e\x6c\x69\x6e\x65\x22\x2c\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x2e\x7a\x6f\x6f\x6d\x3d\x31\x29\x7d\x65\x6c\x73\x65\x20\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x69\x6e\x6c\x69\x6e\x65\x2d\x62\x6c\x6f\x63\x6b\x22\x7d\x64\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x61\x5b\x63\x5d\x29\x26\x26\x28\x28\x62\x2e\x73\x70\x65\x63\x69\x61\x6c\x45\x61\x73\x69\x6e\x67\x3d\x62\x2e\x73\x70\x65\x63\x69\x61\x6c\x45\x61\x73\x69\x6e\x67\x7c\x7c\x7b\x7d\x29\x5b\x63\x5d\x3d\x61\x5b\x63\x5d\x5b\x31\x5d\x2c\x61\x5b\x63\x5d\x3d\x61\x5b\x63\x5d\x5b\x30\x5d\x29\x7d\x62\x2e\x6f\x76\x65\x72\x66\x6c\x6f\x77\x21\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3d\x22\x68\x69\x64\x64\x65\x6e\x22\x29\x2c\x62\x2e\x63\x75\x72\x41\x6e\x69\x6d\x3d\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x61\x29\x2c\x64\x2e\x65\x61\x63\x68\x28\x61\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x3d\x6e\x65\x77\x20\x64\x2e\x66\x78\x28\x68\x2c\x62\x2c\x63\x29\x3b\x69\x66\x28\x63\x61\x2e\x74\x65\x73\x74\x28\x65\x29\x29\x66\x5b\x65\x3d\x3d\x3d\x22\x74\x6f\x67\x67\x6c\x65\x22\x3f\x67\x3f\x22\x73\x68\x6f\x77\x22\x3a\x22\x68\x69\x64\x65\x22\x3a\x65\x5d\x28\x61\x29\x3b\x65\x6c\x73\x65\x7b\x76\x61\x72\x20\x69\x3d\x63\x62\x2e\x65\x78\x65\x63\x28\x65\x29\x2c\x6a\x3d\x66\x2e\x63\x75\x72\x28\x29\x3b\x69\x66\x28\x69\x29\x7b\x76\x61\x72\x20\x6b\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x69\x5b\x32\x5d\x29\x2c\x6c\x3d\x69\x5b\x33\x5d\x7c\x7c\x28\x64\x2e\x63\x73\x73\x4e\x75\x6d\x62\x65\x72\x5b\x63\x5d\x3f\x22\x22\x3a\x22\x70\x78\x22\x29\x3b\x6c\x21\x3d\x3d\x22\x70\x78\x22\x26\x26\x28\x64\x2e\x73\x74\x79\x6c\x65\x28\x68\x2c\x63\x2c\x28\x6b\x7c\x7c\x31\x29\x2b\x6c\x29\x2c\x6a\x3d\x28\x6b\x7c\x7c\x31\x29\x2f\x66\x2e\x63\x75\x72\x28\x29\x2a\x6a\x2c\x64\x2e\x73\x74\x79\x6c\x65\x28\x68\x2c\x63\x2c\x6a\x2b\x6c\x29\x29\x2c\x69\x5b\x31\x5d\x26\x26\x28\x6b\x3d\x28\x69\x5b\x31\x5d\x3d\x3d\x3d\x22\x2d\x3d\x22\x3f\x2d\x31\x3a\x31\x29\x2a\x6b\x2b\x6a\x29\x2c\x66\x2e\x63\x75\x73\x74\x6f\x6d\x28\x6a\x2c\x6b\x2c\x6c\x29\x7d\x65\x6c\x73\x65\x20\x66\x2e\x63\x75\x73\x74\x6f\x6d\x28\x6a\x2c\x65\x2c\x22\x22\x29\x7d\x7d\x29\x3b\x72\x65\x74\x75\x72\x6e\x21\x30\x7d\x29\x7d\x2c\x73\x74\x6f\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x64\x2e\x74\x69\x6d\x65\x72\x73\x3b\x61\x26\x26\x74\x68\x69\x73\x2e\x71\x75\x65\x75\x65\x28\x5b\x5d\x29\x2c\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x61\x3d\x63\x2e\x6c\x65\x6e\x67\x74\x68\x2d\x31\x3b\x61\x3e\x3d\x30\x3b\x61\x2d\x2d\x29\x63\x5b\x61\x5d\x2e\x65\x6c\x65\x6d\x3d\x3d\x3d\x74\x68\x69\x73\x26\x26\x28\x62\x26\x26\x63\x5b\x61\x5d\x28\x21\x30\x29\x2c\x63\x2e\x73\x70\x6c\x69\x63\x65\x28\x61\x2c\x31\x29\x29\x7d\x29\x2c\x62\x7c\x7c\x74\x68\x69\x73\x2e\x64\x65\x71\x75\x65\x75\x65\x28\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x7d\x29\x2c\x64\x2e\x65\x61\x63\x68\x28\x7b\x73\x6c\x69\x64\x65\x44\x6f\x77\x6e\x3a\x63\x65\x28\x22\x73\x68\x6f\x77\x22\x2c\x31\x29\x2c\x73\x6c\x69\x64\x65\x55\x70\x3a\x63\x65\x28\x22\x68\x69\x64\x65\x22\x2c\x31\x29\x2c\x73\x6c\x69\x64\x65\x54\x6f\x67\x67\x6c\x65\x3a\x63\x65\x28\x22\x74\x6f\x67\x67\x6c\x65\x22\x2c\x31\x29\x2c\x66\x61\x64\x65\x49\x6e\x3a\x7b\x6f\x70\x61\x63\x69\x74\x79\x3a\x22\x73\x68\x6f\x77\x22\x7d\x2c\x66\x61\x64\x65\x4f\x75\x74\x3a\x7b\x6f\x70\x61\x63\x69\x74\x79\x3a\x22\x68\x69\x64\x65\x22\x7d\x2c\x66\x61\x64\x65\x54\x6f\x67\x67\x6c\x65\x3a\x7b\x6f\x70\x61\x63\x69\x74\x79\x3a\x22\x74\x6f\x67\x67\x6c\x65\x22\x7d\x7d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x64\x2e\x66\x6e\x5b\x61\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x64\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x62\x2c\x61\x2c\x63\x2c\x64\x29\x7d\x7d\x29\x2c\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x73\x70\x65\x65\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x65\x3d\x61\x26\x26\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x3f\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x61\x29\x3a\x7b\x63\x6f\x6d\x70\x6c\x65\x74\x65\x3a\x63\x7c\x7c\x21\x63\x26\x26\x62\x7c\x7c\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x26\x26\x61\x2c\x64\x75\x72\x61\x74\x69\x6f\x6e\x3a\x61\x2c\x65\x61\x73\x69\x6e\x67\x3a\x63\x26\x26\x62\x7c\x7c\x62\x26\x26\x21\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x26\x26\x62\x7d\x3b\x65\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x3d\x64\x2e\x66\x78\x2e\x6f\x66\x66\x3f\x30\x3a\x74\x79\x70\x65\x6f\x66\x20\x65\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x3d\x3d\x3d\x22\x6e\x75\x6d\x62\x65\x72\x22\x3f\x65\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x3a\x65\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x20\x69\x6e\x20\x64\x2e\x66\x78\x2e\x73\x70\x65\x65\x64\x73\x3f\x64\x2e\x66\x78\x2e\x73\x70\x65\x65\x64\x73\x5b\x65\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x5d\x3a\x64\x2e\x66\x78\x2e\x73\x70\x65\x65\x64\x73\x2e\x5f\x64\x65\x66\x61\x75\x6c\x74\x2c\x65\x2e\x6f\x6c\x64\x3d\x65\x2e\x63\x6f\x6d\x70\x6c\x65\x74\x65\x2c\x65\x2e\x63\x6f\x6d\x70\x6c\x65\x74\x65\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x65\x2e\x71\x75\x65\x75\x65\x21\x3d\x3d\x21\x31\x26\x26\x64\x28\x74\x68\x69\x73\x29\x2e\x64\x65\x71\x75\x65\x75\x65\x28\x29\x2c\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x2e\x6f\x6c\x64\x29\x26\x26\x65\x2e\x6f\x6c\x64\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x29\x7d\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x7d\x2c\x65\x61\x73\x69\x6e\x67\x3a\x7b\x6c\x69\x6e\x65\x61\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x63\x2b\x64\x2a\x61\x7d\x2c\x73\x77\x69\x6e\x67\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x72\x65\x74\x75\x72\x6e\x28\x2d\x4d\x61\x74\x68\x2e\x63\x6f\x73\x28\x61\x2a\x4d\x61\x74\x68\x2e\x50\x49\x29\x2f\x32\x2b\x2e\x35\x29\x2a\x64\x2b\x63\x7d\x7d\x2c\x74\x69\x6d\x65\x72\x73\x3a\x5b\x5d\x2c\x66\x78\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x3d\x62\x2c\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x3d\x61\x2c\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x3d\x63\x2c\x62\x2e\x6f\x72\x69\x67\x7c\x7c\x28\x62\x2e\x6f\x72\x69\x67\x3d\x7b\x7d\x29\x7d\x7d\x29\x2c\x64\x2e\x66\x78\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x3d\x7b\x75\x70\x64\x61\x74\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x74\x65\x70\x26\x26\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x74\x65\x70\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x2c\x74\x68\x69\x73\x2e\x6e\x6f\x77\x2c\x74\x68\x69\x73\x29\x2c\x28\x64\x2e\x66\x78\x2e\x73\x74\x65\x70\x5b\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x5d\x7c\x7c\x64\x2e\x66\x78\x2e\x73\x74\x65\x70\x2e\x5f\x64\x65\x66\x61\x75\x6c\x74\x29\x28\x74\x68\x69\x73\x29\x7d\x2c\x63\x75\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x5b\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x5d\x21\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x21\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x2e\x73\x74\x79\x6c\x65\x7c\x7c\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x2e\x73\x74\x79\x6c\x65\x5b\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x5d\x3d\x3d\x6e\x75\x6c\x6c\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x5b\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x5d\x3b\x76\x61\x72\x20\x61\x2c\x62\x3d\x64\x2e\x63\x73\x73\x28\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x2c\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x4e\x61\x4e\x28\x61\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x62\x29\x29\x3f\x21\x62\x7c\x7c\x62\x3d\x3d\x3d\x22\x61\x75\x74\x6f\x22\x3f\x30\x3a\x62\x3a\x61\x7d\x2c\x63\x75\x73\x74\x6f\x6d\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x65\x2e\x73\x74\x65\x70\x28\x61\x29\x7d\x76\x61\x72\x20\x65\x3d\x74\x68\x69\x73\x2c\x66\x3d\x64\x2e\x66\x78\x3b\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x54\x69\x6d\x65\x3d\x64\x2e\x6e\x6f\x77\x28\x29\x2c\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x3d\x61\x2c\x74\x68\x69\x73\x2e\x65\x6e\x64\x3d\x62\x2c\x74\x68\x69\x73\x2e\x75\x6e\x69\x74\x3d\x63\x7c\x7c\x74\x68\x69\x73\x2e\x75\x6e\x69\x74\x7c\x7c\x28\x64\x2e\x63\x73\x73\x4e\x75\x6d\x62\x65\x72\x5b\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x5d\x3f\x22\x22\x3a\x22\x70\x78\x22\x29\x2c\x74\x68\x69\x73\x2e\x6e\x6f\x77\x3d\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x2c\x74\x68\x69\x73\x2e\x70\x6f\x73\x3d\x74\x68\x69\x73\x2e\x73\x74\x61\x74\x65\x3d\x30\x2c\x67\x2e\x65\x6c\x65\x6d\x3d\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x2c\x67\x28\x29\x26\x26\x64\x2e\x74\x69\x6d\x65\x72\x73\x2e\x70\x75\x73\x68\x28\x67\x29\x26\x26\x21\x63\x63\x26\x26\x28\x63\x63\x3d\x73\x65\x74\x49\x6e\x74\x65\x72\x76\x61\x6c\x28\x66\x2e\x74\x69\x63\x6b\x2c\x66\x2e\x69\x6e\x74\x65\x72\x76\x61\x6c\x29\x29\x7d\x2c\x73\x68\x6f\x77\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6f\x72\x69\x67\x5b\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x5d\x3d\x64\x2e\x73\x74\x79\x6c\x65\x28\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x2c\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x29\x2c\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x68\x6f\x77\x3d\x21\x30\x2c\x74\x68\x69\x73\x2e\x63\x75\x73\x74\x6f\x6d\x28\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x3d\x3d\x3d\x22\x77\x69\x64\x74\x68\x22\x7c\x7c\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x3d\x3d\x3d\x22\x68\x65\x69\x67\x68\x74\x22\x3f\x31\x3a\x30\x2c\x74\x68\x69\x73\x2e\x63\x75\x72\x28\x29\x29\x2c\x64\x28\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x29\x2e\x73\x68\x6f\x77\x28\x29\x7d\x2c\x68\x69\x64\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6f\x72\x69\x67\x5b\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x5d\x3d\x64\x2e\x73\x74\x79\x6c\x65\x28\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x2c\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x29\x2c\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x68\x69\x64\x65\x3d\x21\x30\x2c\x74\x68\x69\x73\x2e\x63\x75\x73\x74\x6f\x6d\x28\x74\x68\x69\x73\x2e\x63\x75\x72\x28\x29\x2c\x30\x29\x7d\x2c\x73\x74\x65\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x64\x2e\x6e\x6f\x77\x28\x29\x2c\x63\x3d\x21\x30\x3b\x69\x66\x28\x61\x7c\x7c\x62\x3e\x3d\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x2b\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x54\x69\x6d\x65\x29\x7b\x74\x68\x69\x73\x2e\x6e\x6f\x77\x3d\x74\x68\x69\x73\x2e\x65\x6e\x64\x2c\x74\x68\x69\x73\x2e\x70\x6f\x73\x3d\x74\x68\x69\x73\x2e\x73\x74\x61\x74\x65\x3d\x31\x2c\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x28\x29\x2c\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x75\x72\x41\x6e\x69\x6d\x5b\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x5d\x3d\x21\x30\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x65\x20\x69\x6e\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x75\x72\x41\x6e\x69\x6d\x29\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x75\x72\x41\x6e\x69\x6d\x5b\x65\x5d\x21\x3d\x3d\x21\x30\x26\x26\x28\x63\x3d\x21\x31\x29\x3b\x69\x66\x28\x63\x29\x7b\x69\x66\x28\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6f\x76\x65\x72\x66\x6c\x6f\x77\x21\x3d\x6e\x75\x6c\x6c\x26\x26\x21\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x73\x68\x72\x69\x6e\x6b\x57\x72\x61\x70\x42\x6c\x6f\x63\x6b\x73\x29\x7b\x76\x61\x72\x20\x66\x3d\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x2c\x67\x3d\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x3b\x64\x2e\x65\x61\x63\x68\x28\x5b\x22\x22\x2c\x22\x58\x22\x2c\x22\x59\x22\x5d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x66\x2e\x73\x74\x79\x6c\x65\x5b\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\x22\x2b\x62\x5d\x3d\x67\x2e\x6f\x76\x65\x72\x66\x6c\x6f\x77\x5b\x61\x5d\x7d\x29\x7d\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x68\x69\x64\x65\x26\x26\x64\x28\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x29\x2e\x68\x69\x64\x65\x28\x29\x3b\x69\x66\x28\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x68\x69\x64\x65\x7c\x7c\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x68\x6f\x77\x29\x66\x6f\x72\x28\x76\x61\x72\x20\x68\x20\x69\x6e\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x75\x72\x41\x6e\x69\x6d\x29\x64\x2e\x73\x74\x79\x6c\x65\x28\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x2c\x68\x2c\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6f\x72\x69\x67\x5b\x68\x5d\x29\x3b\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6d\x70\x6c\x65\x74\x65\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x29\x7d\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\x76\x61\x72\x20\x69\x3d\x62\x2d\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x54\x69\x6d\x65\x3b\x74\x68\x69\x73\x2e\x73\x74\x61\x74\x65\x3d\x69\x2f\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x3b\x76\x61\x72\x20\x6a\x3d\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x70\x65\x63\x69\x61\x6c\x45\x61\x73\x69\x6e\x67\x26\x26\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x70\x65\x63\x69\x61\x6c\x45\x61\x73\x69\x6e\x67\x5b\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x5d\x2c\x6b\x3d\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x65\x61\x73\x69\x6e\x67\x7c\x7c\x28\x64\x2e\x65\x61\x73\x69\x6e\x67\x2e\x73\x77\x69\x6e\x67\x3f\x22\x73\x77\x69\x6e\x67\x22\x3a\x22\x6c\x69\x6e\x65\x61\x72\x22\x29\x3b\x74\x68\x69\x73\x2e\x70\x6f\x73\x3d\x64\x2e\x65\x61\x73\x69\x6e\x67\x5b\x6a\x7c\x7c\x6b\x5d\x28\x74\x68\x69\x73\x2e\x73\x74\x61\x74\x65\x2c\x69\x2c\x30\x2c\x31\x2c\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x29\x2c\x74\x68\x69\x73\x2e\x6e\x6f\x77\x3d\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x2b\x28\x74\x68\x69\x73\x2e\x65\x6e\x64\x2d\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x29\x2a\x74\x68\x69\x73\x2e\x70\x6f\x73\x2c\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x28\x29\x3b\x72\x65\x74\x75\x72\x6e\x21\x30\x7d\x7d\x2c\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x64\x2e\x66\x78\x2c\x7b\x74\x69\x63\x6b\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x64\x2e\x74\x69\x6d\x65\x72\x73\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x62\x3d\x30\x3b\x62\x3c\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x62\x2b\x2b\x29\x61\x5b\x62\x5d\x28\x29\x7c\x7c\x61\x2e\x73\x70\x6c\x69\x63\x65\x28\x62\x2d\x2d\x2c\x31\x29\x3b\x61\x2e\x6c\x65\x6e\x67\x74\x68\x7c\x7c\x64\x2e\x66\x78\x2e\x73\x74\x6f\x70\x28\x29\x7d\x2c\x69\x6e\x74\x65\x72\x76\x61\x6c\x3a\x31\x33\x2c\x73\x74\x6f\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x63\x6c\x65\x61\x72\x49\x6e\x74\x65\x72\x76\x61\x6c\x28\x63\x63\x29\x2c\x63\x63\x3d\x6e\x75\x6c\x6c\x7d\x2c\x73\x70\x65\x65\x64\x73\x3a\x7b\x73\x6c\x6f\x77\x3a\x36\x30\x30\x2c\x66\x61\x73\x74\x3a\x32\x30\x30\x2c\x5f\x64\x65\x66\x61\x75\x6c\x74\x3a\x34\x30\x30\x7d\x2c\x73\x74\x65\x70\x3a\x7b\x6f\x70\x61\x63\x69\x74\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x64\x2e\x73\x74\x79\x6c\x65\x28\x61\x2e\x65\x6c\x65\x6d\x2c\x22\x6f\x70\x61\x63\x69\x74\x79\x22\x2c\x61\x2e\x6e\x6f\x77\x29\x7d\x2c\x5f\x64\x65\x66\x61\x75\x6c\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x61\x2e\x65\x6c\x65\x6d\x2e\x73\x74\x79\x6c\x65\x26\x26\x61\x2e\x65\x6c\x65\x6d\x2e\x73\x74\x79\x6c\x65\x5b\x61\x2e\x70\x72\x6f\x70\x5d\x21\x3d\x6e\x75\x6c\x6c\x3f\x61\x2e\x65\x6c\x65\x6d\x2e\x73\x74\x79\x6c\x65\x5b\x61\x2e\x70\x72\x6f\x70\x5d\x3d\x28\x61\x2e\x70\x72\x6f\x70\x3d\x3d\x3d\x22\x77\x69\x64\x74\x68\x22\x7c\x7c\x61\x2e\x70\x72\x6f\x70\x3d\x3d\x3d\x22\x68\x65\x69\x67\x68\x74\x22\x3f\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x30\x2c\x61\x2e\x6e\x6f\x77\x29\x3a\x61\x2e\x6e\x6f\x77\x29\x2b\x61\x2e\x75\x6e\x69\x74\x3a\x61\x2e\x65\x6c\x65\x6d\x5b\x61\x2e\x70\x72\x6f\x70\x5d\x3d\x61\x2e\x6e\x6f\x77\x7d\x7d\x7d\x29\x2c\x64\x2e\x65\x78\x70\x72\x26\x26\x64\x2e\x65\x78\x70\x72\x2e\x66\x69\x6c\x74\x65\x72\x73\x26\x26\x28\x64\x2e\x65\x78\x70\x72\x2e\x66\x69\x6c\x74\x65\x72\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x64\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x67\x72\x65\x70\x28\x64\x2e\x74\x69\x6d\x65\x72\x73\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x3d\x3d\x3d\x62\x2e\x65\x6c\x65\x6d\x7d\x29\x2e\x6c\x65\x6e\x67\x74\x68\x7d\x29\x3b\x76\x61\x72\x20\x63\x67\x3d\x2f\x5e\x74\x28\x3f\x3a\x61\x62\x6c\x65\x7c\x64\x7c\x68\x29\x24\x2f\x69\x2c\x63\x68\x3d\x2f\x5e\x28\x3f\x3a\x62\x6f\x64\x79\x7c\x68\x74\x6d\x6c\x29\x24\x2f\x69\x3b\x22\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x22\x69\x6e\x20\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x3f\x64\x2e\x66\x6e\x2e\x6f\x66\x66\x73\x65\x74\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x74\x68\x69\x73\x5b\x30\x5d\x2c\x63\x3b\x69\x66\x28\x61\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x64\x2e\x6f\x66\x66\x73\x65\x74\x2e\x73\x65\x74\x4f\x66\x66\x73\x65\x74\x28\x74\x68\x69\x73\x2c\x61\x2c\x62\x29\x7d\x29\x3b\x69\x66\x28\x21\x62\x7c\x7c\x21\x62\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x29\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x69\x66\x28\x62\x3d\x3d\x3d\x62\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x62\x6f\x64\x79\x29\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x6f\x66\x66\x73\x65\x74\x2e\x62\x6f\x64\x79\x4f\x66\x66\x73\x65\x74\x28\x62\x29\x3b\x74\x72\x79\x7b\x63\x3d\x62\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x7d\x63\x61\x74\x63\x68\x28\x65\x29\x7b\x7d\x76\x61\x72\x20\x66\x3d\x62\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x2c\x67\x3d\x66\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x69\x66\x28\x21\x63\x7c\x7c\x21\x64\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x67\x2c\x62\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x63\x3f\x7b\x74\x6f\x70\x3a\x63\x2e\x74\x6f\x70\x2c\x6c\x65\x66\x74\x3a\x63\x2e\x6c\x65\x66\x74\x7d\x3a\x7b\x74\x6f\x70\x3a\x30\x2c\x6c\x65\x66\x74\x3a\x30\x7d\x3b\x76\x61\x72\x20\x68\x3d\x66\x2e\x62\x6f\x64\x79\x2c\x69\x3d\x63\x69\x28\x66\x29\x2c\x6a\x3d\x67\x2e\x63\x6c\x69\x65\x6e\x74\x54\x6f\x70\x7c\x7c\x68\x2e\x63\x6c\x69\x65\x6e\x74\x54\x6f\x70\x7c\x7c\x30\x2c\x6b\x3d\x67\x2e\x63\x6c\x69\x65\x6e\x74\x4c\x65\x66\x74\x7c\x7c\x68\x2e\x63\x6c\x69\x65\x6e\x74\x4c\x65\x66\x74\x7c\x7c\x30\x2c\x6c\x3d\x69\x2e\x70\x61\x67\x65\x59\x4f\x66\x66\x73\x65\x74\x7c\x7c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x62\x6f\x78\x4d\x6f\x64\x65\x6c\x26\x26\x67\x2e\x73\x63\x72\x6f\x6c\x6c\x54\x6f\x70\x7c\x7c\x68\x2e\x73\x63\x72\x6f\x6c\x6c\x54\x6f\x70\x2c\x6d\x3d\x69\x2e\x70\x61\x67\x65\x58\x4f\x66\x66\x73\x65\x74\x7c\x7c\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x62\x6f\x78\x4d\x6f\x64\x65\x6c\x26\x26\x67\x2e\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74\x7c\x7c\x68\x2e\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74\x2c\x6e\x3d\x63\x2e\x74\x6f\x70\x2b\x6c\x2d\x6a\x2c\x6f\x3d\x63\x2e\x6c\x65\x66\x74\x2b\x6d\x2d\x6b\x3b\x72\x65\x74\x75\x72\x6e\x7b\x74\x6f\x70\x3a\x6e\x2c\x6c\x65\x66\x74\x3a\x6f\x7d\x7d\x3a\x64\x2e\x66\x6e\x2e\x6f\x66\x66\x73\x65\x74\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x74\x68\x69\x73\x5b\x30\x5d\x3b\x69\x66\x28\x61\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x64\x2e\x6f\x66\x66\x73\x65\x74\x2e\x73\x65\x74\x4f\x66\x66\x73\x65\x74\x28\x74\x68\x69\x73\x2c\x61\x2c\x62\x29\x7d\x29\x3b\x69\x66\x28\x21\x62\x7c\x7c\x21\x62\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x29\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x69\x66\x28\x62\x3d\x3d\x3d\x62\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x62\x6f\x64\x79\x29\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x6f\x66\x66\x73\x65\x74\x2e\x62\x6f\x64\x79\x4f\x66\x66\x73\x65\x74\x28\x62\x29\x3b\x64\x2e\x6f\x66\x66\x73\x65\x74\x2e\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x28\x29\x3b\x76\x61\x72\x20\x63\x2c\x65\x3d\x62\x2e\x6f\x66\x66\x73\x65\x74\x50\x61\x72\x65\x6e\x74\x2c\x66\x3d\x62\x2c\x67\x3d\x62\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x2c\x68\x3d\x67\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x69\x3d\x67\x2e\x62\x6f\x64\x79\x2c\x6a\x3d\x67\x2e\x64\x65\x66\x61\x75\x6c\x74\x56\x69\x65\x77\x2c\x6b\x3d\x6a\x3f\x6a\x2e\x67\x65\x74\x43\x6f\x6d\x70\x75\x74\x65\x64\x53\x74\x79\x6c\x65\x28\x62\x2c\x6e\x75\x6c\x6c\x29\x3a\x62\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x74\x79\x6c\x65\x2c\x6c\x3d\x62\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\x2c\x6d\x3d\x62\x2e\x6f\x66\x66\x73\x65\x74\x4c\x65\x66\x74\x3b\x77\x68\x69\x6c\x65\x28\x28\x62\x3d\x62\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x26\x26\x62\x21\x3d\x3d\x69\x26\x26\x62\x21\x3d\x3d\x68\x29\x7b\x69\x66\x28\x64\x2e\x6f\x66\x66\x73\x65\x74\x2e\x73\x75\x70\x70\x6f\x72\x74\x73\x46\x69\x78\x65\x64\x50\x6f\x73\x69\x74\x69\x6f\x6e\x26\x26\x6b\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x3d\x3d\x22\x66\x69\x78\x65\x64\x22\x29\x62\x72\x65\x61\x6b\x3b\x63\x3d\x6a\x3f\x6a\x2e\x67\x65\x74\x43\x6f\x6d\x70\x75\x74\x65\x64\x53\x74\x79\x6c\x65\x28\x62\x2c\x6e\x75\x6c\x6c\x29\x3a\x62\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x74\x79\x6c\x65\x2c\x6c\x2d\x3d\x62\x2e\x73\x63\x72\x6f\x6c\x6c\x54\x6f\x70\x2c\x6d\x2d\x3d\x62\x2e\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74\x2c\x62\x3d\x3d\x3d\x65\x26\x26\x28\x6c\x2b\x3d\x62\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\x2c\x6d\x2b\x3d\x62\x2e\x6f\x66\x66\x73\x65\x74\x4c\x65\x66\x74\x2c\x64\x2e\x6f\x66\x66\x73\x65\x74\x2e\x64\x6f\x65\x73\x4e\x6f\x74\x41\x64\x64\x42\x6f\x72\x64\x65\x72\x26\x26\x28\x21\x64\x2e\x6f\x66\x66\x73\x65\x74\x2e\x64\x6f\x65\x73\x41\x64\x64\x42\x6f\x72\x64\x65\x72\x46\x6f\x72\x54\x61\x62\x6c\x65\x41\x6e\x64\x43\x65\x6c\x6c\x73\x7c\x7c\x21\x63\x67\x2e\x74\x65\x73\x74\x28\x62\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x29\x26\x26\x28\x6c\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x63\x2e\x62\x6f\x72\x64\x65\x72\x54\x6f\x70\x57\x69\x64\x74\x68\x29\x7c\x7c\x30\x2c\x6d\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x63\x2e\x62\x6f\x72\x64\x65\x72\x4c\x65\x66\x74\x57\x69\x64\x74\x68\x29\x7c\x7c\x30\x29\x2c\x66\x3d\x65\x2c\x65\x3d\x62\x2e\x6f\x66\x66\x73\x65\x74\x50\x61\x72\x65\x6e\x74\x29\x2c\x64\x2e\x6f\x66\x66\x73\x65\x74\x2e\x73\x75\x62\x74\x72\x61\x63\x74\x73\x42\x6f\x72\x64\x65\x72\x46\x6f\x72\x4f\x76\x65\x72\x66\x6c\x6f\x77\x4e\x6f\x74\x56\x69\x73\x69\x62\x6c\x65\x26\x26\x63\x2e\x6f\x76\x65\x72\x66\x6c\x6f\x77\x21\x3d\x3d\x22\x76\x69\x73\x69\x62\x6c\x65\x22\x26\x26\x28\x6c\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x63\x2e\x62\x6f\x72\x64\x65\x72\x54\x6f\x70\x57\x69\x64\x74\x68\x29\x7c\x7c\x30\x2c\x6d\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x63\x2e\x62\x6f\x72\x64\x65\x72\x4c\x65\x66\x74\x57\x69\x64\x74\x68\x29\x7c\x7c\x30\x29\x2c\x6b\x3d\x63\x7d\x69\x66\x28\x6b\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x3d\x3d\x22\x72\x65\x6c\x61\x74\x69\x76\x65\x22\x7c\x7c\x6b\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x3d\x3d\x22\x73\x74\x61\x74\x69\x63\x22\x29\x6c\x2b\x3d\x69\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\x2c\x6d\x2b\x3d\x69\x2e\x6f\x66\x66\x73\x65\x74\x4c\x65\x66\x74\x3b\x64\x2e\x6f\x66\x66\x73\x65\x74\x2e\x73\x75\x70\x70\x6f\x72\x74\x73\x46\x69\x78\x65\x64\x50\x6f\x73\x69\x74\x69\x6f\x6e\x26\x26\x6b\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x3d\x3d\x22\x66\x69\x78\x65\x64\x22\x26\x26\x28\x6c\x2b\x3d\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x68\x2e\x73\x63\x72\x6f\x6c\x6c\x54\x6f\x70\x2c\x69\x2e\x73\x63\x72\x6f\x6c\x6c\x54\x6f\x70\x29\x2c\x6d\x2b\x3d\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x68\x2e\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74\x2c\x69\x2e\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x7b\x74\x6f\x70\x3a\x6c\x2c\x6c\x65\x66\x74\x3a\x6d\x7d\x7d\x2c\x64\x2e\x6f\x66\x66\x73\x65\x74\x3d\x7b\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x63\x2e\x62\x6f\x64\x79\x2c\x62\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x2c\x65\x2c\x66\x2c\x67\x2c\x68\x2c\x69\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x64\x2e\x63\x73\x73\x28\x61\x2c\x22\x6d\x61\x72\x67\x69\x6e\x54\x6f\x70\x22\x29\x29\x7c\x7c\x30\x2c\x6a\x3d\x22\x3c\x64\x69\x76\x20\x73\x74\x79\x6c\x65\x3d\x27\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x61\x62\x73\x6f\x6c\x75\x74\x65\x3b\x74\x6f\x70\x3a\x30\x3b\x6c\x65\x66\x74\x3a\x30\x3b\x6d\x61\x72\x67\x69\x6e\x3a\x30\x3b\x62\x6f\x72\x64\x65\x72\x3a\x35\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x30\x30\x30\x3b\x70\x61\x64\x64\x69\x6e\x67\x3a\x30\x3b\x77\x69\x64\x74\x68\x3a\x31\x70\x78\x3b\x68\x65\x69\x67\x68\x74\x3a\x31\x70\x78\x3b\x27\x3e\x3c\x64\x69\x76\x3e\x3c\x2f\x64\x69\x76\x3e\x3c\x2f\x64\x69\x76\x3e\x3c\x74\x61\x62\x6c\x65\x20\x73\x74\x79\x6c\x65\x3d\x27\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x61\x62\x73\x6f\x6c\x75\x74\x65\x3b\x74\x6f\x70\x3a\x30\x3b\x6c\x65\x66\x74\x3a\x30\x3b\x6d\x61\x72\x67\x69\x6e\x3a\x30\x3b\x62\x6f\x72\x64\x65\x72\x3a\x35\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x30\x30\x30\x3b\x70\x61\x64\x64\x69\x6e\x67\x3a\x30\x3b\x77\x69\x64\x74\x68\x3a\x31\x70\x78\x3b\x68\x65\x69\x67\x68\x74\x3a\x31\x70\x78\x3b\x27\x20\x63\x65\x6c\x6c\x70\x61\x64\x64\x69\x6e\x67\x3d\x27\x30\x27\x20\x63\x65\x6c\x6c\x73\x70\x61\x63\x69\x6e\x67\x3d\x27\x30\x27\x3e\x3c\x74\x72\x3e\x3c\x74\x64\x3e\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x22\x3b\x64\x2e\x65\x78\x74\x65\x6e\x64\x28\x62\x2e\x73\x74\x79\x6c\x65\x2c\x7b\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x22\x61\x62\x73\x6f\x6c\x75\x74\x65\x22\x2c\x74\x6f\x70\x3a\x30\x2c\x6c\x65\x66\x74\x3a\x30\x2c\x6d\x61\x72\x67\x69\x6e\x3a\x30\x2c\x62\x6f\x72\x64\x65\x72\x3a\x30\x2c\x77\x69\x64\x74\x68\x3a\x22\x31\x70\x78\x22\x2c\x68\x65\x69\x67\x68\x74\x3a\x22\x31\x70\x78\x22\x2c\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x22\x68\x69\x64\x64\x65\x6e\x22\x7d\x29\x2c\x62\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x6a\x2c\x61\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x62\x2c\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x2c\x65\x3d\x62\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2c\x66\x3d\x65\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2c\x68\x3d\x65\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2c\x74\x68\x69\x73\x2e\x64\x6f\x65\x73\x4e\x6f\x74\x41\x64\x64\x42\x6f\x72\x64\x65\x72\x3d\x66\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\x21\x3d\x3d\x35\x2c\x74\x68\x69\x73\x2e\x64\x6f\x65\x73\x41\x64\x64\x42\x6f\x72\x64\x65\x72\x46\x6f\x72\x54\x61\x62\x6c\x65\x41\x6e\x64\x43\x65\x6c\x6c\x73\x3d\x68\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\x3d\x3d\x3d\x35\x2c\x66\x2e\x73\x74\x79\x6c\x65\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x22\x66\x69\x78\x65\x64\x22\x2c\x66\x2e\x73\x74\x79\x6c\x65\x2e\x74\x6f\x70\x3d\x22\x32\x30\x70\x78\x22\x2c\x74\x68\x69\x73\x2e\x73\x75\x70\x70\x6f\x72\x74\x73\x46\x69\x78\x65\x64\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x66\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\x3d\x3d\x3d\x32\x30\x7c\x7c\x66\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\x3d\x3d\x3d\x31\x35\x2c\x66\x2e\x73\x74\x79\x6c\x65\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x66\x2e\x73\x74\x79\x6c\x65\x2e\x74\x6f\x70\x3d\x22\x22\x2c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3d\x22\x68\x69\x64\x64\x65\x6e\x22\x2c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x22\x72\x65\x6c\x61\x74\x69\x76\x65\x22\x2c\x74\x68\x69\x73\x2e\x73\x75\x62\x74\x72\x61\x63\x74\x73\x42\x6f\x72\x64\x65\x72\x46\x6f\x72\x4f\x76\x65\x72\x66\x6c\x6f\x77\x4e\x6f\x74\x56\x69\x73\x69\x62\x6c\x65\x3d\x66\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\x3d\x3d\x3d\x2d\x35\x2c\x74\x68\x69\x73\x2e\x64\x6f\x65\x73\x4e\x6f\x74\x49\x6e\x63\x6c\x75\x64\x65\x4d\x61\x72\x67\x69\x6e\x49\x6e\x42\x6f\x64\x79\x4f\x66\x66\x73\x65\x74\x3d\x61\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\x21\x3d\x3d\x69\x2c\x61\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x62\x29\x2c\x64\x2e\x6f\x66\x66\x73\x65\x74\x2e\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x3d\x64\x2e\x6e\x6f\x6f\x70\x7d\x2c\x62\x6f\x64\x79\x4f\x66\x66\x73\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\x2c\x63\x3d\x61\x2e\x6f\x66\x66\x73\x65\x74\x4c\x65\x66\x74\x3b\x64\x2e\x6f\x66\x66\x73\x65\x74\x2e\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x28\x29\x2c\x64\x2e\x6f\x66\x66\x73\x65\x74\x2e\x64\x6f\x65\x73\x4e\x6f\x74\x49\x6e\x63\x6c\x75\x64\x65\x4d\x61\x72\x67\x69\x6e\x49\x6e\x42\x6f\x64\x79\x4f\x66\x66\x73\x65\x74\x26\x26\x28\x62\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x64\x2e\x63\x73\x73\x28\x61\x2c\x22\x6d\x61\x72\x67\x69\x6e\x54\x6f\x70\x22\x29\x29\x7c\x7c\x30\x2c\x63\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x64\x2e\x63\x73\x73\x28\x61\x2c\x22\x6d\x61\x72\x67\x69\x6e\x4c\x65\x66\x74\x22\x29\x29\x7c\x7c\x30\x29\x3b\x72\x65\x74\x75\x72\x6e\x7b\x74\x6f\x70\x3a\x62\x2c\x6c\x65\x66\x74\x3a\x63\x7d\x7d\x2c\x73\x65\x74\x4f\x66\x66\x73\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x65\x3d\x64\x2e\x63\x73\x73\x28\x61\x2c\x22\x70\x6f\x73\x69\x74\x69\x6f\x6e\x22\x29\x3b\x65\x3d\x3d\x3d\x22\x73\x74\x61\x74\x69\x63\x22\x26\x26\x28\x61\x2e\x73\x74\x79\x6c\x65\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x22\x72\x65\x6c\x61\x74\x69\x76\x65\x22\x29\x3b\x76\x61\x72\x20\x66\x3d\x64\x28\x61\x29\x2c\x67\x3d\x66\x2e\x6f\x66\x66\x73\x65\x74\x28\x29\x2c\x68\x3d\x64\x2e\x63\x73\x73\x28\x61\x2c\x22\x74\x6f\x70\x22\x29\x2c\x69\x3d\x64\x2e\x63\x73\x73\x28\x61\x2c\x22\x6c\x65\x66\x74\x22\x29\x2c\x6a\x3d\x28\x65\x3d\x3d\x3d\x22\x61\x62\x73\x6f\x6c\x75\x74\x65\x22\x7c\x7c\x65\x3d\x3d\x3d\x22\x66\x69\x78\x65\x64\x22\x29\x26\x26\x64\x2e\x69\x6e\x41\x72\x72\x61\x79\x28\x22\x61\x75\x74\x6f\x22\x2c\x5b\x68\x2c\x69\x5d\x29\x3e\x2d\x31\x2c\x6b\x3d\x7b\x7d\x2c\x6c\x3d\x7b\x7d\x2c\x6d\x2c\x6e\x3b\x6a\x26\x26\x28\x6c\x3d\x66\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x28\x29\x29\x2c\x6d\x3d\x6a\x3f\x6c\x2e\x74\x6f\x70\x3a\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x68\x2c\x31\x30\x29\x7c\x7c\x30\x2c\x6e\x3d\x6a\x3f\x6c\x2e\x6c\x65\x66\x74\x3a\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x69\x2c\x31\x30\x29\x7c\x7c\x30\x2c\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x26\x26\x28\x62\x3d\x62\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x63\x2c\x67\x29\x29\x2c\x62\x2e\x74\x6f\x70\x21\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x6b\x2e\x74\x6f\x70\x3d\x62\x2e\x74\x6f\x70\x2d\x67\x2e\x74\x6f\x70\x2b\x6d\x29\x2c\x62\x2e\x6c\x65\x66\x74\x21\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x6b\x2e\x6c\x65\x66\x74\x3d\x62\x2e\x6c\x65\x66\x74\x2d\x67\x2e\x6c\x65\x66\x74\x2b\x6e\x29\x2c\x22\x75\x73\x69\x6e\x67\x22\x69\x6e\x20\x62\x3f\x62\x2e\x75\x73\x69\x6e\x67\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x6b\x29\x3a\x66\x2e\x63\x73\x73\x28\x6b\x29\x7d\x7d\x2c\x64\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x21\x74\x68\x69\x73\x5b\x30\x5d\x29\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x76\x61\x72\x20\x61\x3d\x74\x68\x69\x73\x5b\x30\x5d\x2c\x62\x3d\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x50\x61\x72\x65\x6e\x74\x28\x29\x2c\x63\x3d\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x28\x29\x2c\x65\x3d\x63\x68\x2e\x74\x65\x73\x74\x28\x62\x5b\x30\x5d\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x3f\x7b\x74\x6f\x70\x3a\x30\x2c\x6c\x65\x66\x74\x3a\x30\x7d\x3a\x62\x2e\x6f\x66\x66\x73\x65\x74\x28\x29\x3b\x63\x2e\x74\x6f\x70\x2d\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x64\x2e\x63\x73\x73\x28\x61\x2c\x22\x6d\x61\x72\x67\x69\x6e\x54\x6f\x70\x22\x29\x29\x7c\x7c\x30\x2c\x63\x2e\x6c\x65\x66\x74\x2d\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x64\x2e\x63\x73\x73\x28\x61\x2c\x22\x6d\x61\x72\x67\x69\x6e\x4c\x65\x66\x74\x22\x29\x29\x7c\x7c\x30\x2c\x65\x2e\x74\x6f\x70\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x64\x2e\x63\x73\x73\x28\x62\x5b\x30\x5d\x2c\x22\x62\x6f\x72\x64\x65\x72\x54\x6f\x70\x57\x69\x64\x74\x68\x22\x29\x29\x7c\x7c\x30\x2c\x65\x2e\x6c\x65\x66\x74\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x64\x2e\x63\x73\x73\x28\x62\x5b\x30\x5d\x2c\x22\x62\x6f\x72\x64\x65\x72\x4c\x65\x66\x74\x57\x69\x64\x74\x68\x22\x29\x29\x7c\x7c\x30\x3b\x72\x65\x74\x75\x72\x6e\x7b\x74\x6f\x70\x3a\x63\x2e\x74\x6f\x70\x2d\x65\x2e\x74\x6f\x70\x2c\x6c\x65\x66\x74\x3a\x63\x2e\x6c\x65\x66\x74\x2d\x65\x2e\x6c\x65\x66\x74\x7d\x7d\x2c\x6f\x66\x66\x73\x65\x74\x50\x61\x72\x65\x6e\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x50\x61\x72\x65\x6e\x74\x7c\x7c\x63\x2e\x62\x6f\x64\x79\x3b\x77\x68\x69\x6c\x65\x28\x61\x26\x26\x28\x21\x63\x68\x2e\x74\x65\x73\x74\x28\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x26\x26\x64\x2e\x63\x73\x73\x28\x61\x2c\x22\x70\x6f\x73\x69\x74\x69\x6f\x6e\x22\x29\x3d\x3d\x3d\x22\x73\x74\x61\x74\x69\x63\x22\x29\x29\x61\x3d\x61\x2e\x6f\x66\x66\x73\x65\x74\x50\x61\x72\x65\x6e\x74\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x29\x7d\x7d\x29\x2c\x64\x2e\x65\x61\x63\x68\x28\x5b\x22\x4c\x65\x66\x74\x22\x2c\x22\x54\x6f\x70\x22\x5d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x76\x61\x72\x20\x65\x3d\x22\x73\x63\x72\x6f\x6c\x6c\x22\x2b\x63\x3b\x64\x2e\x66\x6e\x5b\x65\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x29\x7b\x76\x61\x72\x20\x66\x3d\x74\x68\x69\x73\x5b\x30\x5d\x2c\x67\x3b\x69\x66\x28\x21\x66\x29\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x69\x66\x28\x63\x21\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x67\x3d\x63\x69\x28\x74\x68\x69\x73\x29\x2c\x67\x3f\x67\x2e\x73\x63\x72\x6f\x6c\x6c\x54\x6f\x28\x61\x3f\x64\x28\x67\x29\x2e\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74\x28\x29\x3a\x63\x2c\x61\x3f\x63\x3a\x64\x28\x67\x29\x2e\x73\x63\x72\x6f\x6c\x6c\x54\x6f\x70\x28\x29\x29\x3a\x74\x68\x69\x73\x5b\x65\x5d\x3d\x63\x7d\x29\x3b\x67\x3d\x63\x69\x28\x66\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x67\x3f\x22\x70\x61\x67\x65\x58\x4f\x66\x66\x73\x65\x74\x22\x69\x6e\x20\x67\x3f\x67\x5b\x61\x3f\x22\x70\x61\x67\x65\x59\x4f\x66\x66\x73\x65\x74\x22\x3a\x22\x70\x61\x67\x65\x58\x4f\x66\x66\x73\x65\x74\x22\x5d\x3a\x64\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x62\x6f\x78\x4d\x6f\x64\x65\x6c\x26\x26\x67\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x5b\x65\x5d\x7c\x7c\x67\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x62\x6f\x64\x79\x5b\x65\x5d\x3a\x66\x5b\x65\x5d\x7d\x7d\x29\x2c\x64\x2e\x65\x61\x63\x68\x28\x5b\x22\x48\x65\x69\x67\x68\x74\x22\x2c\x22\x57\x69\x64\x74\x68\x22\x5d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x76\x61\x72\x20\x65\x3d\x63\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3b\x64\x2e\x66\x6e\x5b\x22\x69\x6e\x6e\x65\x72\x22\x2b\x63\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x5b\x30\x5d\x3f\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x64\x2e\x63\x73\x73\x28\x74\x68\x69\x73\x5b\x30\x5d\x2c\x65\x2c\x22\x70\x61\x64\x64\x69\x6e\x67\x22\x29\x29\x3a\x6e\x75\x6c\x6c\x7d\x2c\x64\x2e\x66\x6e\x5b\x22\x6f\x75\x74\x65\x72\x22\x2b\x63\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x5b\x30\x5d\x3f\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x64\x2e\x63\x73\x73\x28\x74\x68\x69\x73\x5b\x30\x5d\x2c\x65\x2c\x61\x3f\x22\x6d\x61\x72\x67\x69\x6e\x22\x3a\x22\x62\x6f\x72\x64\x65\x72\x22\x29\x29\x3a\x6e\x75\x6c\x6c\x7d\x2c\x64\x2e\x66\x6e\x5b\x65\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x66\x3d\x74\x68\x69\x73\x5b\x30\x5d\x3b\x69\x66\x28\x21\x66\x29\x72\x65\x74\x75\x72\x6e\x20\x61\x3d\x3d\x6e\x75\x6c\x6c\x3f\x6e\x75\x6c\x6c\x3a\x74\x68\x69\x73\x3b\x69\x66\x28\x64\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x64\x28\x74\x68\x69\x73\x29\x3b\x63\x5b\x65\x5d\x28\x61\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x62\x2c\x63\x5b\x65\x5d\x28\x29\x29\x29\x7d\x29\x3b\x69\x66\x28\x64\x2e\x69\x73\x57\x69\x6e\x64\x6f\x77\x28\x66\x29\x29\x7b\x76\x61\x72\x20\x67\x3d\x66\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x5b\x22\x63\x6c\x69\x65\x6e\x74\x22\x2b\x63\x5d\x3b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x6f\x6d\x70\x61\x74\x4d\x6f\x64\x65\x3d\x3d\x3d\x22\x43\x53\x53\x31\x43\x6f\x6d\x70\x61\x74\x22\x26\x26\x67\x7c\x7c\x66\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x62\x6f\x64\x79\x5b\x22\x63\x6c\x69\x65\x6e\x74\x22\x2b\x63\x5d\x7c\x7c\x67\x7d\x69\x66\x28\x66\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x39\x29\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x66\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x5b\x22\x63\x6c\x69\x65\x6e\x74\x22\x2b\x63\x5d\x2c\x66\x2e\x62\x6f\x64\x79\x5b\x22\x73\x63\x72\x6f\x6c\x6c\x22\x2b\x63\x5d\x2c\x66\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x5b\x22\x73\x63\x72\x6f\x6c\x6c\x22\x2b\x63\x5d\x2c\x66\x2e\x62\x6f\x64\x79\x5b\x22\x6f\x66\x66\x73\x65\x74\x22\x2b\x63\x5d\x2c\x66\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x5b\x22\x6f\x66\x66\x73\x65\x74\x22\x2b\x63\x5d\x29\x3b\x69\x66\x28\x61\x3d\x3d\x3d\x62\x29\x7b\x76\x61\x72\x20\x68\x3d\x64\x2e\x63\x73\x73\x28\x66\x2c\x65\x29\x2c\x69\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x68\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x2e\x69\x73\x4e\x61\x4e\x28\x69\x29\x3f\x68\x3a\x69\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x73\x73\x28\x65\x2c\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x3f\x61\x3a\x61\x2b\x22\x70\x78\x22\x29\x7d\x7d\x29\x2c\x61\x2e\x6a\x51\x75\x65\x72\x79\x3d\x61\x2e\x24\x3d\x64\x7d\x29\x28\x77\x69\x6e\x64\x6f\x77\x29\x3b",85925 }},{"/_seasocks.css", {"\x2f\x2a\x0a\x46\x72\x6f\x6d\x20\x53\x65\x61\x73\x6f\x63\x6b\x73\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x31\x2e\x31\x2e\x32\x2c\x20\x75\x6e\x64\x65\x72\x20\x2f\x73\x72\x63\x2f\x6d\x61\x69\x6e\x2f\x77\x65\x62\x0a\x0a\x43\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x28\x63\x29\x20\x32\x30\x31\x33\x2c\x20\x4d\x61\x74\x74\x20\x47\x6f\x64\x62\x6f\x6c\x74\x0a\x41\x6c\x6c\x20\x72\x69\x67\x68\x74\x73\x20\x72\x65\x73\x65\x72\x76\x65\x64\x2e\x0a\x0a\x52\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x20\x61\x6e\x64\x20\x75\x73\x65\x20\x69\x6e\x20\x73\x6f\x75\x72\x63\x65\x20\x61\x6e\x64\x20\x62\x69\x6e\x61\x72\x79\x20\x66\x6f\x72\x6d\x73\x2c\x20\x77\x69\x74\x68\x20\x6f\x72\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x0a\x6d\x6f\x64\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x2c\x20\x61\x72\x65\x20\x70\x65\x72\x6d\x69\x74\x74\x65\x64\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x74\x68\x61\x74\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73\x20\x61\x72\x65\x20\x6d\x65\x74\x3a\x0a\x0a\x52\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x73\x20\x6f\x66\x20\x73\x6f\x75\x72\x63\x65\x20\x63\x6f\x64\x65\x20\x6d\x75\x73\x74\x20\x72\x65\x74\x61\x69\x6e\x20\x74\x68\x65\x20\x61\x62\x6f\x76\x65\x20\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x6e\x6f\x74\x69\x63\x65\x2c\x20\x74\x68\x69\x73\x20\x0a\x6c\x69\x73\x74\x20\x6f\x66\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x64\x69\x73\x63\x6c\x61\x69\x6d\x65\x72\x2e\x0a\x52\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x73\x20\x69\x6e\x20\x62\x69\x6e\x61\x72\x79\x20\x66\x6f\x72\x6d\x20\x6d\x75\x73\x74\x20\x72\x65\x70\x72\x6f\x64\x75\x63\x65\x20\x74\x68\x65\x20\x61\x62\x6f\x76\x65\x20\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x6e\x6f\x74\x69\x63\x65\x2c\x20\x74\x68\x69\x73\x20\x0a\x6c\x69\x73\x74\x20\x6f\x66\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x64\x69\x73\x63\x6c\x61\x69\x6d\x65\x72\x20\x69\x6e\x20\x74\x68\x65\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x61\x6e\x64\x2f\x6f\x72\x20\x0a\x6f\x74\x68\x65\x72\x20\x6d\x61\x74\x65\x72\x69\x61\x6c\x73\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x2e\x0a\x0a\x54\x48\x49\x53\x20\x53\x4f\x46\x54\x57\x41\x52\x45\x20\x49\x53\x20\x50\x52\x4f\x56\x49\x44\x45\x44\x20\x42\x59\x20\x54\x48\x45\x20\x43\x4f\x50\x59\x52\x49\x47\x48\x54\x20\x48\x4f\x4c\x44\x45\x52\x53\x20\x41\x4e\x44\x20\x43\x4f\x4e\x54\x52\x49\x42\x55\x54\x4f\x52\x53\x20\x22\x41\x53\x20\x49\x53\x22\x20\x41\x4e\x44\x20\x0a\x41\x4e\x59\x20\x45\x58\x50\x52\x45\x53\x53\x20\x4f\x52\x20\x49\x4d\x50\x4c\x49\x45\x44\x20\x57\x41\x52\x52\x41\x4e\x54\x49\x45\x53\x2c\x20\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x2c\x20\x42\x55\x54\x20\x4e\x4f\x54\x20\x4c\x49\x4d\x49\x54\x45\x44\x20\x54\x4f\x2c\x20\x54\x48\x45\x20\x49\x4d\x50\x4c\x49\x45\x44\x20\x0a\x57\x41\x52\x52\x41\x4e\x54\x49\x45\x53\x20\x4f\x46\x20\x4d\x45\x52\x43\x48\x41\x4e\x54\x41\x42\x49\x4c\x49\x54\x59\x20\x41\x4e\x44\x20\x46\x49\x54\x4e\x45\x53\x53\x20\x46\x4f\x52\x20\x41\x20\x50\x41\x52\x54\x49\x43\x55\x4c\x41\x52\x20\x50\x55\x52\x50\x4f\x53\x45\x20\x41\x52\x45\x20\x0a\x44\x49\x53\x43\x4c\x41\x49\x4d\x45\x44\x2e\x20\x49\x4e\x20\x4e\x4f\x20\x45\x56\x45\x4e\x54\x20\x53\x48\x41\x4c\x4c\x20\x54\x48\x45\x20\x43\x4f\x50\x59\x52\x49\x47\x48\x54\x20\x48\x4f\x4c\x44\x45\x52\x20\x4f\x52\x20\x43\x4f\x4e\x54\x52\x49\x42\x55\x54\x4f\x52\x53\x20\x42\x45\x20\x4c\x49\x41\x42\x4c\x45\x20\x0a\x46\x4f\x52\x20\x41\x4e\x59\x20\x44\x49\x52\x45\x43\x54\x2c\x20\x49\x4e\x44\x49\x52\x45\x43\x54\x2c\x20\x49\x4e\x43\x49\x44\x45\x4e\x54\x41\x4c\x2c\x20\x53\x50\x45\x43\x49\x41\x4c\x2c\x20\x45\x58\x45\x4d\x50\x4c\x41\x52\x59\x2c\x20\x4f\x52\x20\x43\x4f\x4e\x53\x45\x51\x55\x45\x4e\x54\x49\x41\x4c\x20\x0a\x44\x41\x4d\x41\x47\x45\x53\x20\x28\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x2c\x20\x42\x55\x54\x20\x4e\x4f\x54\x20\x4c\x49\x4d\x49\x54\x45\x44\x20\x54\x4f\x2c\x20\x50\x52\x4f\x43\x55\x52\x45\x4d\x45\x4e\x54\x20\x4f\x46\x20\x53\x55\x42\x53\x54\x49\x54\x55\x54\x45\x20\x47\x4f\x4f\x44\x53\x20\x4f\x52\x20\x0a\x53\x45\x52\x56\x49\x43\x45\x53\x3b\x20\x4c\x4f\x53\x53\x20\x4f\x46\x20\x55\x53\x45\x2c\x20\x44\x41\x54\x41\x2c\x20\x4f\x52\x20\x50\x52\x4f\x46\x49\x54\x53\x3b\x20\x4f\x52\x20\x42\x55\x53\x49\x4e\x45\x53\x53\x20\x49\x4e\x54\x45\x52\x52\x55\x50\x54\x49\x4f\x4e\x29\x20\x48\x4f\x57\x45\x56\x45\x52\x20\x0a\x43\x41\x55\x53\x45\x44\x20\x41\x4e\x44\x20\x4f\x4e\x20\x41\x4e\x59\x20\x54\x48\x45\x4f\x52\x59\x20\x4f\x46\x20\x4c\x49\x41\x42\x49\x4c\x49\x54\x59\x2c\x20\x57\x48\x45\x54\x48\x45\x52\x20\x49\x4e\x20\x43\x4f\x4e\x54\x52\x41\x43\x54\x2c\x20\x53\x54\x52\x49\x43\x54\x20\x4c\x49\x41\x42\x49\x4c\x49\x54\x59\x2c\x20\x0a\x4f\x52\x20\x54\x4f\x52\x54\x20\x28\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x20\x4e\x45\x47\x4c\x49\x47\x45\x4e\x43\x45\x20\x4f\x52\x20\x4f\x54\x48\x45\x52\x57\x49\x53\x45\x29\x20\x41\x52\x49\x53\x49\x4e\x47\x20\x49\x4e\x20\x41\x4e\x59\x20\x57\x41\x59\x20\x4f\x55\x54\x20\x4f\x46\x20\x54\x48\x45\x20\x55\x53\x45\x20\x0a\x4f\x46\x20\x54\x48\x49\x53\x20\x53\x4f\x46\x54\x57\x41\x52\x45\x2c\x20\x45\x56\x45\x4e\x20\x49\x46\x20\x41\x44\x56\x49\x53\x45\x44\x20\x4f\x46\x20\x54\x48\x45\x20\x50\x4f\x53\x53\x49\x42\x49\x4c\x49\x54\x59\x20\x4f\x46\x20\x53\x55\x43\x48\x20\x44\x41\x4d\x41\x47\x45\x2e\x0a\x2a\x2f\x0a\x0a\x62\x6f\x64\x79\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\x79\x3a\x20\x73\x65\x67\x6f\x65\x20\x75\x69\x2c\x20\x74\x61\x68\x6f\x6d\x61\x2c\x20\x61\x72\x69\x61\x6c\x2c\x20\x73\x61\x6e\x73\x2d\x73\x65\x72\x69\x66\x3b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x32\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x66\x66\x66\x66\x66\x66\x3b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x33\x33\x33\x33\x33\x33\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\x3a\x20\x30\x3b\x0a\x7d\x0a\x0a\x61\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x66\x66\x66\x66\x30\x30\x3b\x0a\x7d\x0a\x0a\x74\x61\x62\x6c\x65\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6c\x61\x70\x73\x65\x3a\x20\x63\x6f\x6c\x6c\x61\x70\x73\x65\x3b\x0a\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x30\x30\x25\x3b\x0a\x20\x20\x20\x20\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\x20\x63\x65\x6e\x74\x65\x72\x3b\x0a\x7d\x0a\x0a\x2e\x74\x65\x6d\x70\x6c\x61\x74\x65\x20\x7b\x0a\x20\x20\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x6e\x6f\x6e\x65\x3b\x0a\x7d\x0a\x0a",1649 }},{"/_stats.html", {"\x3c\x21\x2d\x2d\x0a\x46\x72\x6f\x6d\x20\x53\x65\x61\x73\x6f\x63\x6b\x73\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x31\x2e\x31\x2e\x32\x2c\x20\x75\x6e\x64\x65\x72\x20\x2f\x73\x72\x63\x2f\x6d\x61\x69\x6e\x2f\x77\x65\x62\x0a\x0a\x43\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x28\x63\x29\x20\x32\x30\x31\x33\x2c\x20\x4d\x61\x74\x74\x20\x47\x6f\x64\x62\x6f\x6c\x74\x0a\x41\x6c\x6c\x20\x72\x69\x67\x68\x74\x73\x20\x72\x65\x73\x65\x72\x76\x65\x64\x2e\x0a\x0a\x52\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x20\x61\x6e\x64\x20\x75\x73\x65\x20\x69\x6e\x20\x73\x6f\x75\x72\x63\x65\x20\x61\x6e\x64\x20\x62\x69\x6e\x61\x72\x79\x20\x66\x6f\x72\x6d\x73\x2c\x20\x77\x69\x74\x68\x20\x6f\x72\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x0a\x6d\x6f\x64\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x2c\x20\x61\x72\x65\x20\x70\x65\x72\x6d\x69\x74\x74\x65\x64\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x74\x68\x61\x74\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73\x20\x61\x72\x65\x20\x6d\x65\x74\x3a\x0a\x0a\x52\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x73\x20\x6f\x66\x20\x73\x6f\x75\x72\x63\x65\x20\x63\x6f\x64\x65\x20\x6d\x75\x73\x74\x20\x72\x65\x74\x61\x69\x6e\x20\x74\x68\x65\x20\x61\x62\x6f\x76\x65\x20\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x6e\x6f\x74\x69\x63\x65\x2c\x20\x74\x68\x69\x73\x20\x0a\x6c\x69\x73\x74\x20\x6f\x66\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x64\x69\x73\x63\x6c\x61\x69\x6d\x65\x72\x2e\x0a\x52\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x73\x20\x69\x6e\x20\x62\x69\x6e\x61\x72\x79\x20\x66\x6f\x72\x6d\x20\x6d\x75\x73\x74\x20\x72\x65\x70\x72\x6f\x64\x75\x63\x65\x20\x74\x68\x65\x20\x61\x62\x6f\x76\x65\x20\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x6e\x6f\x74\x69\x63\x65\x2c\x20\x74\x68\x69\x73\x20\x0a\x6c\x69\x73\x74\x20\x6f\x66\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x64\x69\x73\x63\x6c\x61\x69\x6d\x65\x72\x20\x69\x6e\x20\x74\x68\x65\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x61\x6e\x64\x2f\x6f\x72\x20\x0a\x6f\x74\x68\x65\x72\x20\x6d\x61\x74\x65\x72\x69\x61\x6c\x73\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x2e\x0a\x0a\x54\x48\x49\x53\x20\x53\x4f\x46\x54\x57\x41\x52\x45\x20\x49\x53\x20\x50\x52\x4f\x56\x49\x44\x45\x44\x20\x42\x59\x20\x54\x48\x45\x20\x43\x4f\x50\x59\x52\x49\x47\x48\x54\x20\x48\x4f\x4c\x44\x45\x52\x53\x20\x41\x4e\x44\x20\x43\x4f\x4e\x54\x52\x49\x42\x55\x54\x4f\x52\x53\x20\x22\x41\x53\x20\x49\x53\x22\x20\x41\x4e\x44\x20\x0a\x41\x4e\x59\x20\x45\x58\x50\x52\x45\x53\x53\x20\x4f\x52\x20\x49\x4d\x50\x4c\x49\x45\x44\x20\x57\x41\x52\x52\x41\x4e\x54\x49\x45\x53\x2c\x20\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x2c\x20\x42\x55\x54\x20\x4e\x4f\x54\x20\x4c\x49\x4d\x49\x54\x45\x44\x20\x54\x4f\x2c\x20\x54\x48\x45\x20\x49\x4d\x50\x4c\x49\x45\x44\x20\x0a\x57\x41\x52\x52\x41\x4e\x54\x49\x45\x53\x20\x4f\x46\x20\x4d\x45\x52\x43\x48\x41\x4e\x54\x41\x42\x49\x4c\x49\x54\x59\x20\x41\x4e\x44\x20\x46\x49\x54\x4e\x45\x53\x53\x20\x46\x4f\x52\x20\x41\x20\x50\x41\x52\x54\x49\x43\x55\x4c\x41\x52\x20\x50\x55\x52\x50\x4f\x53\x45\x20\x41\x52\x45\x20\x0a\x44\x49\x53\x43\x4c\x41\x49\x4d\x45\x44\x2e\x20\x49\x4e\x20\x4e\x4f\x20\x45\x56\x45\x4e\x54\x20\x53\x48\x41\x4c\x4c\x20\x54\x48\x45\x20\x43\x4f\x50\x59\x52\x49\x47\x48\x54\x20\x48\x4f\x4c\x44\x45\x52\x20\x4f\x52\x20\x43\x4f\x4e\x54\x52\x49\x42\x55\x54\x4f\x52\x53\x20\x42\x45\x20\x4c\x49\x41\x42\x4c\x45\x20\x0a\x46\x4f\x52\x20\x41\x4e\x59\x20\x44\x49\x52\x45\x43\x54\x2c\x20\x49\x4e\x44\x49\x52\x45\x43\x54\x2c\x20\x49\x4e\x43\x49\x44\x45\x4e\x54\x41\x4c\x2c\x20\x53\x50\x45\x43\x49\x41\x4c\x2c\x20\x45\x58\x45\x4d\x50\x4c\x41\x52\x59\x2c\x20\x4f\x52\x20\x43\x4f\x4e\x53\x45\x51\x55\x45\x4e\x54\x49\x41\x4c\x20\x0a\x44\x41\x4d\x41\x47\x45\x53\x20\x28\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x2c\x20\x42\x55\x54\x20\x4e\x4f\x54\x20\x4c\x49\x4d\x49\x54\x45\x44\x20\x54\x4f\x2c\x20\x50\x52\x4f\x43\x55\x52\x45\x4d\x45\x4e\x54\x20\x4f\x46\x20\x53\x55\x42\x53\x54\x49\x54\x55\x54\x45\x20\x47\x4f\x4f\x44\x53\x20\x4f\x52\x20\x0a\x53\x45\x52\x56\x49\x43\x45\x53\x3b\x20\x4c\x4f\x53\x53\x20\x4f\x46\x20\x55\x53\x45\x2c\x20\x44\x41\x54\x41\x2c\x20\x4f\x52\x20\x50\x52\x4f\x46\x49\x54\x53\x3b\x20\x4f\x52\x20\x42\x55\x53\x49\x4e\x45\x53\x53\x20\x49\x4e\x54\x45\x52\x52\x55\x50\x54\x49\x4f\x4e\x29\x20\x48\x4f\x57\x45\x56\x45\x52\x20\x0a\x43\x41\x55\x53\x45\x44\x20\x41\x4e\x44\x20\x4f\x4e\x20\x41\x4e\x59\x20\x54\x48\x45\x4f\x52\x59\x20\x4f\x46\x20\x4c\x49\x41\x42\x49\x4c\x49\x54\x59\x2c\x20\x57\x48\x45\x54\x48\x45\x52\x20\x49\x4e\x20\x43\x4f\x4e\x54\x52\x41\x43\x54\x2c\x20\x53\x54\x52\x49\x43\x54\x20\x4c\x49\x41\x42\x49\x4c\x49\x54\x59\x2c\x20\x0a\x4f\x52\x20\x54\x4f\x52\x54\x20\x28\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x20\x4e\x45\x47\x4c\x49\x47\x45\x4e\x43\x45\x20\x4f\x52\x20\x4f\x54\x48\x45\x52\x57\x49\x53\x45\x29\x20\x41\x52\x49\x53\x49\x4e\x47\x20\x49\x4e\x20\x41\x4e\x59\x20\x57\x41\x59\x20\x4f\x55\x54\x20\x4f\x46\x20\x54\x48\x45\x20\x55\x53\x45\x20\x0a\x4f\x46\x20\x54\x48\x49\x53\x20\x53\x4f\x46\x54\x57\x41\x52\x45\x2c\x20\x45\x56\x45\x4e\x20\x49\x46\x20\x41\x44\x56\x49\x53\x45\x44\x20\x4f\x46\x20\x54\x48\x45\x20\x50\x4f\x53\x53\x49\x42\x49\x4c\x49\x54\x59\x20\x4f\x46\x20\x53\x55\x43\x48\x20\x44\x41\x4d\x41\x47\x45\x2e\x0a\x2d\x2d\x3e\x0a\x0a\x3c\x68\x74\x6d\x6c\x20\x44\x4f\x43\x54\x59\x50\x45\x3d\x68\x74\x6d\x6c\x3e\x0a\x3c\x68\x65\x61\x64\x3e\x0a\x20\x20\x3c\x74\x69\x74\x6c\x65\x3e\x53\x65\x61\x53\x6f\x63\x6b\x73\x20\x53\x74\x61\x74\x73\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x0a\x20\x20\x3c\x6c\x69\x6e\x6b\x20\x68\x72\x65\x66\x3d\x22\x2f\x5f\x73\x65\x61\x73\x6f\x63\x6b\x73\x2e\x63\x73\x73\x22\x20\x72\x65\x6c\x3d\x22\x73\x74\x79\x6c\x65\x73\x68\x65\x65\x74\x22\x3e\x0a\x20\x20\x3c\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3d\x22\x2f\x5f\x6a\x71\x75\x65\x72\x79\x2e\x6d\x69\x6e\x2e\x6a\x73\x22\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\x3e\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e\x0a\x20\x20\x3c\x73\x63\x72\x69\x70\x74\x3e\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6c\x65\x61\x72\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x24\x28\x27\x23\x63\x78\x20\x74\x62\x6f\x64\x79\x20\x74\x72\x3a\x76\x69\x73\x69\x62\x6c\x65\x27\x29\x2e\x72\x65\x6d\x6f\x76\x65\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x28\x73\x74\x61\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x20\x3d\x20\x24\x28\x27\x23\x63\x78\x20\x2e\x74\x65\x6d\x70\x6c\x61\x74\x65\x27\x29\x2e\x63\x6c\x6f\x6e\x65\x28\x29\x2e\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x28\x27\x74\x65\x6d\x70\x6c\x61\x74\x65\x27\x29\x2e\x61\x70\x70\x65\x6e\x64\x54\x6f\x28\x27\x23\x63\x78\x27\x29\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x73\x74\x61\x74\x20\x69\x6e\x20\x73\x74\x61\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x2e\x66\x69\x6e\x64\x28\x27\x2e\x27\x20\x2b\x20\x73\x74\x61\x74\x29\x2e\x74\x65\x78\x74\x28\x73\x74\x61\x74\x73\x5b\x73\x74\x61\x74\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x66\x72\x65\x73\x68\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x73\x74\x61\x74\x73\x20\x3d\x20\x6e\x65\x77\x20\x58\x4d\x4c\x48\x74\x74\x70\x52\x65\x71\x75\x65\x73\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x73\x74\x61\x74\x73\x2e\x6f\x70\x65\x6e\x28\x22\x47\x45\x54\x22\x2c\x20\x22\x2f\x5f\x6c\x69\x76\x65\x73\x74\x61\x74\x73\x2e\x6a\x73\x22\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x73\x74\x61\x74\x73\x2e\x73\x65\x6e\x64\x28\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x65\x76\x61\x6c\x28\x73\x74\x61\x74\x73\x2e\x72\x65\x73\x70\x6f\x6e\x73\x65\x54\x65\x78\x74\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x24\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x65\x74\x49\x6e\x74\x65\x72\x76\x61\x6c\x28\x72\x65\x66\x72\x65\x73\x68\x2c\x20\x31\x30\x30\x30\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x66\x72\x65\x73\x68\x28\x29\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e\x0a\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\x3c\x68\x31\x3e\x53\x65\x61\x53\x6f\x63\x6b\x73\x20\x53\x74\x61\x74\x73\x3c\x2f\x68\x31\x3e\x3c\x2f\x62\x6f\x64\x79\x3e\x0a\x0a\x3c\x68\x32\x3e\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x73\x3c\x2f\x68\x32\x3e\x0a\x3c\x74\x61\x62\x6c\x65\x20\x69\x64\x3d\x22\x63\x78\x22\x3e\x0a\x20\x20\x3c\x74\x68\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x3e\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x20\x74\x69\x6d\x65\x3c\x2f\x74\x68\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x3e\x46\x64\x3c\x2f\x74\x68\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x3e\x41\x64\x64\x72\x3c\x2f\x74\x68\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x3e\x55\x52\x49\x3c\x2f\x74\x68\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x3e\x55\x73\x65\x72\x6e\x61\x6d\x65\x3c\x2f\x74\x68\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x3e\x50\x65\x6e\x64\x69\x6e\x67\x20\x72\x65\x61\x64\x3c\x2f\x74\x68\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x3e\x42\x79\x74\x65\x73\x20\x72\x65\x61\x64\x3c\x2f\x74\x68\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x3e\x50\x65\x6e\x64\x69\x6e\x67\x20\x73\x65\x6e\x64\x3c\x2f\x74\x68\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x68\x3e\x42\x79\x74\x65\x73\x20\x73\x65\x6e\x74\x3c\x2f\x74\x68\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x3c\x2f\x74\x68\x65\x61\x64\x3e\x0a\x20\x20\x3c\x74\x62\x6f\x64\x79\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x20\x63\x6c\x61\x73\x73\x3d\x22\x74\x65\x6d\x70\x6c\x61\x74\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x69\x6e\x63\x65\x22\x3e\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\x20\x63\x6c\x61\x73\x73\x3d\x22\x66\x64\x22\x3e\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\x20\x63\x6c\x61\x73\x73\x3d\x22\x61\x64\x64\x72\x22\x3e\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\x20\x63\x6c\x61\x73\x73\x3d\x22\x75\x72\x69\x22\x3e\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\x20\x63\x6c\x61\x73\x73\x3d\x22\x75\x73\x65\x72\x22\x3e\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\x6e\x70\x75\x74\x22\x3e\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\x20\x63\x6c\x61\x73\x73\x3d\x22\x72\x65\x61\x64\x22\x3e\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\x20\x63\x6c\x61\x73\x73\x3d\x22\x6f\x75\x74\x70\x75\x74\x22\x3e\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x74\x64\x20\x63\x6c\x61\x73\x73\x3d\x22\x77\x72\x69\x74\x74\x65\x6e\x22\x3e\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x3c\x2f\x74\x62\x6f\x64\x79\x3e\x0a\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x0a\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x0a\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a",2730 }},{"/favicon.ico", {"\x00\x00\x01\x00\x01\x00\x10\x10\x00\x00\x01\x00\x08\x00\x68\x05\x00\x00\x16\x00\x00\x00\x28\x00\x00\x00\x10\x00\x00\x00\x20\x00\x00\x00\x01\x00\x08\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\xe3\xe2\xe4\x00\x24\x29\x4d\x00\xf2\xf2\xf0\x00\x6f\x7f\xb1\x00\x84\x83\x8a\x00\x4b\x5b\x7f\x00\x6f\x70\x6e\x00\xf7\xf7\xfc\x00\x8b\x8d\x8e\x00\xcf\xd2\xd0\x00\xde\xde\xdc\x00\x32\x37\x55\x00\xc9\xc8\xca\x00\xfb\xfb\xfd\x00\xc3\xc6\xc4\x00\xbf\xc2\xc0\x00\x4f\x5b\x91\x00\xef\xef\xf1\x00\xee\xef\xf0\x00\x23\x26\x3c\x00\xcb\xca\xc9\x00\x74\x85\xd5\x00\xef\xea\xe7\x00\xea\xeb\xec\x00\xfa\xf9\xf9\x00\x7e\x95\xdc\x00\x17\x1c\x30\x00\xe0\xe3\xe2\x00\xf5\xf1\xf4\x00\xf4\xf1\xf3\x00\x68\x62\x61\x00\x6a\x7a\xc1\x00\x71\x83\xaa\x00\xdf\xdf\xe1\x00\x72\x72\x7c\x00\x3d\x3d\x46\x00\x2a\x2b\x36\x00\xc7\xc7\xcc\x00\x2a\x32\x51\x00\x6c\x6b\x6c\x00\xd1\xd3\xd3\x00\x50\x61\x8c\x00\x53\x4e\x4c\x00\x9a\xa2\xc0\x00\x68\x7b\xb2\x00\xaf\xb4\xbe\x00\x3a\x41\x65\x00\xea\xe5\xe6\x00\x53\x5b\xa0\x00\x8c\xa4\xeb\x00\xd2\xd1\xd1\x00\xb8\xb9\xba\x00\xfe\xfe\xfe\x00\x7b\x87\xbf\x00\x69\x6e\x6d\x00\xe4\xe8\xe7\x00\xf8\xf8\xf8\x00\x9d\x9f\xa2\x00\x3b\x40\x59\x00\xf6\xf6\xf6\x00\x50\x5c\x90\x00\x8a\xa4\xe6\x00\xf2\xf2\xf2\x00\xde\xe0\xe1\x00\x5f\x6f\x92\x00\xc4\xc6\xca\x00\xb7\xb4\xac\x00\x34\x34\x3e\x00\x9c\x9f\x9e\x00\x5e\x6b\xa2\x00\x32\x37\x57\x00\xee\xec\xeb\x00\x9d\xa3\xb0\x00\xec\xea\xe9\x00\xd7\xda\xd7\x00\xa1\xa5\xa0\x00\xe6\xe8\xe3\x00\x7e\x8f\xe1\x00\x32\x3b\x68\x00\xbe\xbc\xc1\x00\xce\xd2\xce\x00\xdc\xda\xd9\x00\xf7\xf7\xf8\x00\xd2\xd0\xcf\x00\x68\x64\x63\x00\xef\xef\xf0\x00\xed\xed\xee\x00\x49\x56\x80\x00\x3a\x43\x6a\x00\x9f\xa2\xa2\x00\x54\x44\x3e\x00\x7f\x96\xd2\x00\xbe\xbf\xc5\x00\x87\x8c\x8d\x00\x7d\x83\xa1\x00\x83\x93\xb8\x00\xd6\xd9\xd7\x00\xd7\xd7\xd8\x00\x99\xa0\xad\x00\xd4\xd7\xd5\x00\xd2\xd5\xd3\x00\xac\xaf\xb3\x00\x46\x53\x70\x00\x50\x65\x8b\x00\xde\xe1\xdc\x00\x74\x75\x70\x00\x4c\x53\x87\x00\xda\xd9\xd8\x00\x37\x44\x6b\x00\x54\x61\xa0\x00\x56\x62\x98\x00\x73\x84\xc3\x00\xd3\xd5\xd1\x00\x3d\x3e\x49\x00\x4f\x5c\x7d\x00\xac\xa3\x9c\x00\x32\x34\x3e\x00\xad\xb1\xae\x00\x15\x19\x2e\x00\x7b\x8d\xcf\x00\x4f\x5b\x84\x00\xdc\xde\xde\x00\x13\x15\x2c\x00\x22\x24\x42\x00\x1f\x1d\x35\x00\x18\x20\x38\x00\x29\x2b\x50\x00\x99\x9d\x9a\x00\xf3\xf4\xef\x00\x3e\x4f\x73\x00\xba\xbc\xbf\x00\xaf\xb7\xd2\x00\x45\x4b\x66\x00\xca\xcc\xcc\x00\x16\x18\x22\x00\x67\x75\xbb\x00\x8d\x91\xa2\x00\xee\xec\xea\x00\x90\x93\x91\x00\xc4\xc6\xc6\x00\x6c\x81\xbd\x00\x45\x4e\x6d\x00\xee\xef\xf1\x00\xff\xff\xff\x00\xfd\xfd\xfd\x00\xfb\xfb\xfb\x00\xc1\xc5\xca\x00\x63\x78\xaa\x00\xb6\xaf\xae\x00\x44\x52\x7d\x00\xb0\xae\xb2\x00\xf2\xf3\xf2\x00\xcd\xcd\xd3\x00\x41\x4c\x66\x00\x5a\x5f\x97\x00\xfb\xf9\xf8\x00\x8d\x8e\x92\x00\x51\x62\x98\x00\xe7\xe5\xe7\x00\x96\x98\x98\x00\xde\xdb\xde\x00\x21\x27\x3f\x00\x4e\x5a\x81\x00\x13\x13\x20\x00\x3b\x43\x67\x00\x6b\x6a\x73\x00\x5c\x56\x53\x00\xba\xbf\xbd\x00\xdd\xdb\xda\x00\xfd\xfe\xfe\x00\x50\x58\x6c\x00\xf6\xf6\xf7\x00\xcd\xcb\xca\x00\x14\x16\x25\x00\x74\x85\xca\x00\x7a\x81\x83\x00\x73\x69\x6b\x00\x8d\x8d\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x51\x1d\x9e\x33\x8b\x7f\x65\x37\x09\x0f\x60\x4b\x44\x3f\x47\xac\x89\xab\x59\x36\xaf\x5e\xaa\xa7\x09\x0e\x63\x85\x28\x79\x6b\xa8\x9b\x14\x06\x8a\x62\x35\x66\x9c\x64\x75\x4a\x50\x8e\x04\x1b\x02\x80\x69\x1e\x27\x84\x57\x20\x48\x0a\x5d\x68\x4c\x39\x86\x16\x1c\xa0\xa6\x54\x71\x99\x72\x40\x2d\x42\x9f\x00\x2f\x96\x4f\x32\x0c\x73\x5a\x2a\x3a\x05\x03\x5b\x5f\x08\x70\x97\x12\x8f\x8f\x11\x21\x94\xb0\x43\x8d\x81\x9a\x6f\x2c\x2b\x0d\x8f\x8f\x8f\x34\x8f\x8f\x90\x18\x88\x2e\xa4\x7e\x3c\x1f\x77\x07\x34\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x98\x01\x45\x4e\x87\x4d\x15\x83\x8f\x34\x8f\x8f\x8f\x8f\x8f\x8f\x5c\x7b\x6e\x6a\x30\x6d\x9d\x67\x38\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x25\x7a\x26\x58\x10\xae\x19\x93\x92\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x17\xad\x0b\x95\x8c\x31\x3d\x29\x41\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x52\xa5\x7c\x46\x6c\x78\xa2\x7d\x55\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x61\x74\x13\xa1\x1a\x76\x22\x8f\x34\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x82\x23\xa3\x24\xb1\x3b\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x34\x8f\xa9\x3e\x56\x55\x91\x8f\x34\x8f\x8f\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",1407 }},
-};
-
-} // namespace
-
-const EmbeddedContent* findEmbeddedContent(const std::string& name) {
- auto found = embedded.find(name);
- if (found == embedded.end()) {
- return NULL;
- }
- return &found->second;
-}
diff --git a/frc971/http_status/http_status.cc b/frc971/http_status/http_status.cc
index 9a6440a..6cdb303 100644
--- a/frc971/http_status/http_status.cc
+++ b/frc971/http_status/http_status.cc
@@ -1,114 +1,296 @@
-// Copyright (c) 2013, Matt Godbolt
-// 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.
-//
-// 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 HOLDER 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.
-
-// An extraordinarily simple test which presents a web page with some buttons.
-// Clicking on the numbered button increments the number, which is visible to
-// other connected clients. WebSockets are used to do this: by the rather
-// suspicious means of sending raw JavaScript commands to be executed on other
-// clients.
-
#include "seasocks/PrintfLogger.h"
-#include "seasocks/Server.h"
-#include "seasocks/StringUtil.h"
#include "seasocks/WebSocket.h"
-#include "seasocks/util/Json.h"
+#include "seasocks/Server.h"
-#include <cstring>
#include <iostream>
-#include <memory>
-#include <set>
#include <sstream>
#include <string>
+#include <thread>
+#include <vector>
-#include "embedded.h"
+#include "aos/linux_code/init.h"
+#include "aos/common/logging/logging.h"
+#include "aos/common/time.h"
+#include "aos/common/util/phased_loop.h"
+#include "aos/common/mutex.h"
-using namespace seasocks;
-using namespace std;
+#include "frc971/control_loops/claw/claw.q.h"
+#include "frc971/control_loops/fridge/fridge.q.h"
-class MyHandler: public WebSocket::Handler {
-public:
- MyHandler(Server* server) : _server(server), _currentValue(0) {
- setValue(1);
+#include "frc971/http_status/http_status.h"
+
+namespace frc971 {
+namespace http_status {
+
+// TODO(comran): Make some of these separate libraries & document them better.
+
+HTTPStatusMessage::HTTPStatusMessage()
+ : sample_id_(0),
+ measure_index_(0),
+ overflow_id_(200),
+ num_samples_per_packet_(50) {}
+
+void HTTPStatusMessage::NextSample() {
+ int32_t adjusted_index = GetIndex(sample_id_);
+
+ ::aos::time::Time time_now = ::aos::time::Time::Now();
+
+ if (sample_id_ < overflow_id_) {
+ sample_times_.emplace_back(time_now);
+ data_values_.emplace_back(::std::vector<double>());
+ } else {
+ sample_times_[adjusted_index] = time_now;
+ }
+
+ sample_id_++;
+ measure_index_ = 0;
+
+ CHECK(!mutex_.Lock()); // Lock the mutex so measures can be added.
+}
+
+void HTTPStatusMessage::EndSample() { mutex_.Unlock(); }
+
+int32_t HTTPStatusMessage::GetIndex(int32_t sample_id) {
+ return sample_id % overflow_id_;
+}
+
+void HTTPStatusMessage::AddMeasure(::std::string name, double value) {
+ // Mutex should be locked when this method is called to synchronize packets.
+ assert(mutex_.OwnedBySelf());
+
+ int32_t index = GetIndex(sample_id_ - 1);
+
+ if (measure_index_ >= static_cast<int32_t>(data_names_.size())) {
+ data_names_.emplace_back(name);
+ }
+
+ if (measure_index_ >= static_cast<int32_t>(data_values_.at(index).size())) {
+ data_values_.at(index).emplace_back(value);
+ } else {
+ data_values_.at(index).at(measure_index_) = value;
+ }
+ measure_index_++;
+}
+
+::std::string HTTPStatusMessage::Fetch(size_t from_sample) {
+ ::aos::MutexLocker locker(&mutex_);
+
+ ::std::stringstream message;
+ message.precision(10); // Cap how precise the time/measurement data is.
+
+ // To save space, data is being sent with a custom protocol over to the
+ // client.
+ // Initially, a message containing all the names of the measurements is sent
+ // and is preceeded with a *.
+ // Names begin with a star and are split with commas.
+
+ // Example: *test,test2
+ if (static_cast<int32_t>(from_sample) == -1) {
+ message << "*";
+ for (int32_t cur_data_name = 0;
+ cur_data_name < static_cast<int32_t>(data_names_.size());
+ cur_data_name++) {
+ if (cur_data_name > 0) {
+ message << ",";
+ }
+ message << data_names_.at(cur_data_name);
+ }
+ return message.str();
+ }
+
+ // TODO(comran): Use from_sample to determine the speed packets should be sent
+ // out to avoid skipping packets.
+ from_sample = sample_id_ - num_samples_per_packet_;
+
+ // Data packets are sent, with raw data being placed at the same index as the
+ // original index of the measurement name sent in the initial packet.
+ // Samples are split with dollar signs, info with percent signs, and
+ // measurements with commas.
+ // This special format system is helpful for debugging issues and looping
+ // through the data on the client side.
+
+ // Example of two samples that correspond with the initialized example:
+ // 289%2803.135127%10,67$290%2803.140109%12,68
+ for (int32_t cur_sample = from_sample;
+ cur_sample <
+ static_cast<int32_t>(from_sample + num_samples_per_packet_) &&
+ GetIndex(cur_sample) < static_cast<int32_t>(data_values_.size());
+ cur_sample++) {
+ if (cur_sample != static_cast<int32_t>(from_sample)) {
+ message << "$";
}
- virtual void onConnect(WebSocket* connection) {
- _connections.insert(connection);
- connection->send(_currentSetValue.c_str());
- cout << "Connected: " << connection->getRequestUri()
- << " : " << formatAddress(connection->getRemoteAddress())
- << endl;
- cout << "Credentials: " << *(connection->credentials()) << endl;
+ int32_t adjusted_index = GetIndex(cur_sample);
+
+ message << cur_sample << "%" << sample_times_.at(adjusted_index).ToSeconds()
+ << "%";
+ for (int32_t cur_measure = 0;
+ cur_measure < static_cast<int32_t>(data_names_.size());
+ cur_measure++) {
+ if (cur_measure > 0) {
+ message << ",";
+ }
+ message << data_values_.at(adjusted_index).at(cur_measure);
}
+ }
+ return message.str();
+}
- virtual void onData(WebSocket* connection, const char* data) {
- if (0 == strcmp("die", data)) {
- _server->terminate();
- return;
- }
- if (0 == strcmp("close", data)) {
- cout << "Closing.." << endl;
- connection->close();
- cout << "Closed." << endl;
- return;
- }
+DataCollector::DataCollector() : cur_raw_data_("no data") {}
- int value = atoi(data) + 1;
- if (value > _currentValue) {
- setValue(value);
- for (auto connection : _connections) {
- connection->send(_currentSetValue.c_str());
- }
- }
- }
+void DataCollector::RunIteration() {
+ auto& fridge_queue = control_loops::fridge_queue;
+ auto& claw_queue = control_loops::claw_queue;
- virtual void onDisconnect(WebSocket* connection) {
- _connections.erase(connection);
- cout << "Disconnected: " << connection->getRequestUri()
- << " : " << formatAddress(connection->getRemoteAddress())
- << endl;
- }
+ fridge_queue.status.FetchAnother();
+ claw_queue.status.FetchAnother();
-private:
- set<WebSocket*> _connections;
- Server* _server;
- int _currentValue;
- string _currentSetValue;
+ message_.NextSample();
+ // Add recorded data here. /////
+ // NOTE: Try to use fewer than 30 measures, or the whole thing will lag.
+ // Abbreviate names if long, otherwise just use the command to get the value
+ // from the queue.
- void setValue(int value) {
- _currentValue = value;
- _currentSetValue = makeExecString("set", _currentValue);
- }
-};
+ // TODO(comran): Make it so that the name doesn't have to be copied as a
+ // string.
-int main(int argc, const char* argv[]) {
- shared_ptr<Logger> logger(new PrintfLogger(Logger::DEBUG));
+ // //// Fridge
+ // Positions
+ message_.AddMeasure("(fridge position left arm encoder)",
+ fridge_queue.position->arm.left.encoder);
+ message_.AddMeasure("(fridge position right arm encoder)",
+ fridge_queue.position->arm.right.encoder);
+ message_.AddMeasure("(fridge position left elev encoder)",
+ fridge_queue.position->elevator.left.encoder);
+ message_.AddMeasure("(fridge position right elev encoder)",
+ fridge_queue.position->elevator.right.encoder);
+ // Goals
+ message_.AddMeasure("fridge_queue.goal->profiling_type",
+ fridge_queue.goal->profiling_type);
+ message_.AddMeasure("fridge_queue.goal->angle", fridge_queue.goal->angle);
+ message_.AddMeasure("fridge_queue.goal->angular_velocity",
+ fridge_queue.goal->angular_velocity);
+ message_.AddMeasure("fridge_queue.goal->height", fridge_queue.goal->height);
+ message_.AddMeasure("fridge_queue.goal->velocity",
+ fridge_queue.goal->velocity);
+ message_.AddMeasure("fridge_queue.x", fridge_queue.goal->x);
+ message_.AddMeasure("fridge_queue.x_velocity", fridge_queue.goal->x_velocity);
+ message_.AddMeasure("fridge_queue.y", fridge_queue.goal->y);
+ message_.AddMeasure("fridge_queue.y_velocity", fridge_queue.goal->y_velocity);
+ // Statuses
+ message_.AddMeasure("fridge_queue.status->height",
+ fridge_queue.status->height);
+ message_.AddMeasure("fridge_queue.status->velocity",
+ fridge_queue.status->velocity);
+ message_.AddMeasure("fridge_queue.status->angle", fridge_queue.status->angle);
+ message_.AddMeasure("fridge_queue.status->angular_velocity",
+ fridge_queue.status->angular_velocity);
+ message_.AddMeasure("fridge_queue.status->x", fridge_queue.status->x);
+ message_.AddMeasure("fridge_queue.status->x_velocity",
+ fridge_queue.status->x_velocity);
+ message_.AddMeasure("fridge_queue.status->y", fridge_queue.status->y);
+ message_.AddMeasure("fridge_queue.status->y_velocity",
+ fridge_queue.status->y_velocity);
+ message_.AddMeasure("fridge_queue.status->state", fridge_queue.status->state);
+ message_.AddMeasure("fridge_queue.status->zeroed",
+ fridge_queue.status->zeroed);
+ message_.AddMeasure("fridge_queue.status->estopped",
+ fridge_queue.status->estopped);
+ // Outputs
+ message_.AddMeasure("fridge_queue.output->left_arm",
+ fridge_queue.output->left_arm);
+ message_.AddMeasure("fridge_queue.output->right_arm",
+ fridge_queue.output->right_arm);
+ message_.AddMeasure("fridge_queue.output->left_elevator",
+ fridge_queue.output->left_elevator);
+ message_.AddMeasure("fridge_queue.output->right_elevator",
+ fridge_queue.output->right_elevator);
+ // End recorded data. /////
+ message_.EndSample();
+}
- Server server(logger);
+::std::string DataCollector::GetData(int32_t from_sample) {
+ return message_.Fetch(from_sample);
+}
- shared_ptr<MyHandler> handler(new MyHandler(&server));
- server.addWebSocketHandler("/ws", handler);
- server.serve("web_test", 8080);
- return 0;
+void DataCollector::operator()() {
+ ::aos::SetCurrentThreadName("HTTPStatusData");
+
+ while (run_) {
+ ::aos::time::PhasedLoopXMS(5, 0);
+ RunIteration();
+ }
+}
+
+SocketHandler::SocketHandler()
+ : data_collector_thread_(::std::ref(data_collector_)) {}
+
+void SocketHandler::onConnect(seasocks::WebSocket* connection) {
+ connections_.insert(connection);
+ LOG(INFO, "Connected: %s : %s\n", connection->getRequestUri().c_str(),
+ seasocks::formatAddress(connection->getRemoteAddress()).c_str());
+}
+
+void SocketHandler::onData(seasocks::WebSocket* connection, const char* data) {
+ int32_t from_sample = atoi(data);
+
+ ::std::string send_data = data_collector_.GetData(from_sample);
+ connection->send(send_data.c_str());
+}
+
+void SocketHandler::onDisconnect(seasocks::WebSocket* connection) {
+ connections_.erase(connection);
+ LOG(INFO, "Disconnected: %s : %s\n", connection->getRequestUri().c_str(),
+ seasocks::formatAddress(connection->getRemoteAddress()).c_str());
+}
+
+void SocketHandler::Quit() {
+ data_collector_.Quit();
+ data_collector_thread_.join();
+}
+
+SeasocksLogger::SeasocksLogger(Level min_level_to_log)
+ : PrintfLogger(min_level_to_log) {}
+
+void SeasocksLogger::log(Level level, const char* message) {
+ log_level aos_level;
+ switch (level) {
+ case seasocks::Logger::INFO:
+ aos_level = INFO;
+ break;
+ case seasocks::Logger::WARNING:
+ aos_level = WARNING;
+ break;
+ case seasocks::Logger::ERROR:
+ case seasocks::Logger::SEVERE:
+ aos_level = ERROR;
+ break;
+ case seasocks::Logger::DEBUG:
+ case seasocks::Logger::ACCESS:
+ default:
+ aos_level = DEBUG;
+ break;
+ }
+ LOG(aos_level, "Seasocks: %s\n", message);
+}
+
+} // namespace http_status
+} // namespace frc971
+
+int main(int, char* []) {
+ ::aos::InitNRT();
+
+ seasocks::Server server(::std::shared_ptr<seasocks::Logger>(
+ new frc971::http_status::SeasocksLogger(seasocks::Logger::INFO)));
+ frc971::http_status::SocketHandler socket_handler;
+
+ server.addWebSocketHandler(
+ "/ws",
+ ::std::shared_ptr<frc971::http_status::SocketHandler>(&socket_handler));
+ server.serve("www", 8080);
+
+ socket_handler.Quit();
+
+ ::aos::Cleanup();
+ return 0;
}
diff --git a/frc971/http_status/http_status.gyp b/frc971/http_status/http_status.gyp
index 202a3aa..a0065db 100644
--- a/frc971/http_status/http_status.gyp
+++ b/frc971/http_status/http_status.gyp
@@ -10,29 +10,35 @@
{
'action_name': 'http_status_gen_embedded',
'inputs': [
- '<!@(find ./web)',
+ '<!@(find ./www_defaults)',
],
'outputs': [
- 'embedded.h',
+ '<(SHARED_INTERMEDIATE_DIR)/http_status/embedded.h',
],
'action': [
'python', '<(AOS)/externals/seasocks/gen_embedded.py', 'http_status', '<(_outputs)',
],
},
],
- 'cflags': [
- # TODO(comran): Fix these once we start writing our own code for the
- # server
- '-Wno-unused-parameter',
- '-Wno-format-nonliteral',
- '-Wno-error=cast-align',
- '-Wno-switch-enum',
- '-Wno-cast-qual',
- '-Wno-strict-aliasing',
- '-Wno-error=strict-aliasing',
+ 'include_dirs': [
+ '<(SHARED_INTERMEDIATE_DIR)/http_status/'
],
'dependencies': [
+ '<(AOS)/linux_code/linux_code.gyp:init',
+ '<(AOS)/build/aos.gyp:logging',
'<(EXTERNALS):seasocks',
+ '<(DEPTH)/frc971/control_loops/claw/claw.gyp:claw_queue',
+ '<(DEPTH)/frc971/control_loops/fridge/fridge.gyp:fridge_queue',
+ '<(AOS)/common/util/util.gyp:phased_loop',
+ '<(AOS)/common/common.gyp:time',
+ ],
+ 'copies': [
+ {
+ 'destination': '<(rsync_dir)',
+ 'files': [
+ 'www',
+ ],
+ },
],
},
],
diff --git a/frc971/http_status/http_status.h b/frc971/http_status/http_status.h
new file mode 100644
index 0000000..9ce8dcb
--- /dev/null
+++ b/frc971/http_status/http_status.h
@@ -0,0 +1,110 @@
+#include "seasocks/PageHandler.h"
+#include "seasocks/PrintfLogger.h"
+#include "seasocks/StringUtil.h"
+
+#include <iostream>
+#include <memory>
+#include <sstream>
+#include <string>
+#include <thread>
+#include <atomic>
+#include <vector>
+
+#include "aos/linux_code/init.h"
+#include "aos/common/time.h"
+#include "aos/common/util/phased_loop.h"
+#include "aos/common/mutex.h"
+
+#include "frc971/control_loops/claw/claw.q.h"
+#include "frc971/control_loops/fridge/fridge.q.h"
+
+#include "frc971/http_status/embedded.h"
+
+namespace frc971 {
+namespace http_status {
+
+// A class for storing data from DataCollector and packaging it as a custom
+// message for the websocket.
+// Samples are stored in a vector that wraps around at a certain point to avoid
+// clogging up memory. These samples should be already on all clients before
+// they are overwritten. To avoid losing samples, there must be a balance
+// between the rate samples are being recorded at and the speed of the link
+// between the robot and client.
+
+class HTTPStatusMessage {
+ public:
+ HTTPStatusMessage();
+
+ // Stores an individual measurement in the current sample.
+ void AddMeasure(::std::string name, double value);
+
+ // Starts a new sample that contains measurements for all the states at a
+ // timestep, and lock mutex to synchronize measures.
+ void NextSample();
+
+ // Unlock mutex.
+ void EndSample();
+
+ // Method called by the websocket to get a JSON-packaged string containing,
+ // at most, a constant number of samples, starting at "from_sample".
+ // "from_sample" is a specific index for a sample that is not wrapped.
+ ::std::string Fetch(size_t from_sample);
+
+ private:
+ // Returns the vector index of the sample given.
+ // Since the vectors wrap, multiple sample_ids may refer to the same vector
+ // index.
+ int32_t GetIndex(int32_t sample_id);
+
+ // Vectors of vectors to store samples at indexes determined by GetIndex.
+ ::std::vector<::std::string> data_names_;
+ ::std::vector<::std::vector<double>> data_values_;
+ ::std::vector<::aos::time::Time> sample_times_;
+
+ int32_t sample_id_; // Last sample id used.
+ int32_t measure_index_; // Last measure index used.
+ const int32_t overflow_id_; // Vector wrapping size.
+ // Number of samples to include in each JSON packet.
+ const int32_t num_samples_per_packet_;
+
+ // Mutex used to synchronize data.
+ ::aos::Mutex mutex_;
+};
+
+class DataCollector {
+ public:
+ DataCollector();
+ void RunIteration();
+ ::std::string GetData(int32_t from);
+
+ void operator()(); // Will be called by ::std::thread internally.
+ void Quit() { run_ = false; }
+
+ private:
+ ::std::string cur_raw_data_;
+ HTTPStatusMessage message_;
+ ::std::atomic<bool> run_{true};
+};
+
+class SocketHandler : public seasocks::WebSocket::Handler {
+ public:
+ SocketHandler();
+ void onConnect(seasocks::WebSocket* connection) override;
+ void onData(seasocks::WebSocket* connection, const char* data) override;
+ void onDisconnect(seasocks::WebSocket* connection) override;
+ void Quit();
+
+ private:
+ ::std::set<seasocks::WebSocket*> connections_;
+ DataCollector data_collector_;
+ ::std::thread data_collector_thread_;
+};
+
+class SeasocksLogger : public seasocks::PrintfLogger {
+ public:
+ SeasocksLogger(Level min_level_to_log);
+ void log(Level level, const char* message) override;
+};
+
+} // namespace http_status
+} // namespace frc971
diff --git a/frc971/http_status/web/_jquery.min.js b/frc971/http_status/web/_jquery.min.js
deleted file mode 100644
index f78f96a..0000000
--- a/frc971/http_status/web/_jquery.min.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.5.2
- * 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: Thu Mar 31 15:28:23 2011 -0400
- */
-(function(a,b){function ci(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cf(a){if(!b_[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";b_[a]=c}return b_[a]}function ce(a,b){var c={};d.each(cd.concat.apply([],cd.slice(0,b)),function(){c[this]=a});return c}function b$(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bZ(){try{return new a.XMLHttpRequest}catch(b){}}function bY(){d(a).unload(function(){for(var a in bW)bW[a](0,1)})}function bS(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h==="string"&&(f[h.toLowerCase()]=a.converters[h]);l=k,k=e[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=f[m]||f["* "+k];if(!n){p=b;for(o in f){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=f[j[1]+" "+k];if(p){o=f[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&d.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bR(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bQ(a,b,c,e){if(d.isArray(b)&&b.length)d.each(b,function(b,f){c||bs.test(a)?e(a,f):bQ(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)});else if(c||b==null||typeof b!=="object")e(a,b);else if(d.isArray(b)||d.isEmptyObject(b))e(a,"");else for(var f in b)bQ(a+"["+f+"]",b[f],c,e)}function bP(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bJ,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bP(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bP(a,c,d,e,"*",g));return l}function bO(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bD),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bq(a,b,c){var e=b==="width"?bk:bl,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function bc(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function bb(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function ba(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function _(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function $(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Q(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(L.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function P(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function H(a,b){return(a&&a!=="*"?a+".":"")+b.replace(t,"`").replace(u,"&")}function G(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,p=[],q=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(r,"")===a.type?q.push(g.selector):t.splice(i--,1);f=d(a.target).closest(q,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){f=p[j];if(c&&f.level>c)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function E(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function y(){return!0}function x(){return!1}function i(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function h(a,c,e){if(e===b&&a.nodeType===1){e=a.getAttribute("data-"+c);if(typeof e==="string"){try{e=e==="true"?!0:e==="false"?!1:e==="null"?null:d.isNaN(e)?g.test(e)?d.parseJSON(e):e:parseFloat(e)}catch(f){}d.data(a,c,e)}else e=b}return e}var c=a.document,d=function(){function G(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(G,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x,y,z=Object.prototype.toString,A=Object.prototype.hasOwnProperty,B=Array.prototype.push,C=Array.prototype.slice,D=String.prototype.trim,E=Array.prototype.indexOf,F={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.2",length:0,size:function(){return this.length},toArray:function(){return C.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?B.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),x.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(C.apply(this,arguments),"slice",C.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:B,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){e=i[c],f=a[c];if(i===f)continue;l&&f&&(d.isPlainObject(f)||(g=d.isArray(f)))?(g?(g=!1,h=e&&d.isArray(e)?e:[]):h=e&&d.isPlainObject(e)?e:{},i[c]=d.extend(l,h,f)):f!==b&&(i[c]=f)}return i},d.extend({noConflict:function(b){a.$=f,b&&(a.jQuery=e);return d},isReady:!1,readyWait:1,ready:function(a){a===!0&&d.readyWait--;if(!d.readyWait||a!==!0&&!d.isReady){if(!c.body)return setTimeout(d.ready,1);d.isReady=!0;if(a!==!0&&--d.readyWait>0)return;x.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=d._Deferred();if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",y,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",y),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&G()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):F[z.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!A.call(a,"constructor")&&!A.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||A.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g<h;)if(c.apply(a[g++],e)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(var j=a[0];g<h&&c.call(j,g,j)!==!1;j=a[++g]){}return a},trim:D?function(a){return a==null?"":D.call(a)}:function(a){return a==null?"":(a+"").replace(j,"").replace(k,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var e=d.type(a);a.length==null||e==="string"||e==="function"||e==="regexp"||d.isWindow(a)?B.call(c,a):d.merge(c,a)}return c},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length==="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,b,c){var d=[],e;for(var f=0,g=a.length;f<g;f++)e=b(a[f],f,c),e!=null&&(d[d.length]=e);return d.concat.apply([],d)},guid:1,proxy:function(a,c,e){arguments.length===2&&(typeof c==="string"?(e=a,a=e[c],c=b):c&&!d.isFunction(c)&&(e=c,c=b)),!c&&a&&(c=function(){return a.apply(e||this,arguments)}),a&&(c.guid=a.guid=a.guid||c.guid||d.guid++);return c},access:function(a,c,e,f,g,h){var i=a.length;if(typeof c==="object"){for(var j in c)d.access(a,j,c[j],f,g,e);return a}if(e!==b){f=!h&&f&&d.isFunction(e);for(var k=0;k<i;k++)g(a[k],c,f?e.call(a[k],k,g(a[k],c)):e,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){F["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),E&&(d.inArray=function(a,b){return E.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?y=function(){c.removeEventListener("DOMContentLoaded",y,!1),d.ready()}:c.attachEvent&&(y=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",y),d.ready())});return d}(),e="then done fail isResolved isRejected promise".split(" "),f=[].slice;d.extend({_Deferred:function(){var a=[],b,c,e,f={done:function(){if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this},resolveWith:function(d,f){if(!e&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(d,f)}finally{b=[d,f],c=0}}return this},resolve:function(){f.resolveWith(this,arguments);return this},isResolved:function(){return c||b},cancel:function(){e=1,a=[];return this}};return f},Deferred:function(a){var b=d._Deferred(),c=d._Deferred(),f;d.extend(b,{then:function(a,c){b.done(a).fail(c);return this},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,promise:function(a){if(a==null){if(f)return f;f=a={}}var c=e.length;while(c--)a[e[c]]=b[e[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?f.call(arguments,0):c,--g||h.resolveWith(h,f.call(b,0))}}var b=arguments,c=0,e=b.length,g=e,h=e<=1&&a&&d.isFunction(a.promise)?a:d.Deferred();if(e>1){for(;c<e;c++)b[c]&&d.isFunction(b[c].promise)?b[c].promise().then(i(c),h.reject):--g;g||h.resolveWith(h,b)}else h!==a&&h.resolveWith(h,e?[a]:[]);return h.promise()}}),function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0,reliableMarginRight:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e)}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(a.style.width="1px",a.style.marginRight="0",d.support.reliableMarginRight=(parseInt(c.defaultView.getComputedStyle(a,null).marginRight,10)||0)===0),b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function");return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}}();var g=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!i(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,g=b.nodeType,h=g?d.cache:b,j=g?b[d.expando]:d.expando;if(!h[j])return;if(c){var k=e?h[j][f]:h[j];if(k){delete k[c];if(!i(k))return}}if(e){delete h[j][f];if(!i(h[j]))return}var l=h[j][f];d.support.deleteExpando||h!=a?delete h[j]:h[j]=null,l?(h[j]={},g||(h[j].toJSON=d.noop),h[j][f]=l):g&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var f=this[0].attributes,g;for(var i=0,j=f.length;i<j;i++)g=f[i].name,g.indexOf("data-")===0&&(g=g.substr(5),h(this[0],g,e[g]))}}return e}if(typeof a==="object")return this.each(function(){d.data(this,a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(c===b){e=this.triggerHandler("getData"+k[1]+"!",[k[0]]),e===b&&this.length&&(e=d.data(this[0],a),e=h(this[0],a,e));return e===b&&k[1]?this.data(k[0]):e}return this.each(function(){var b=d(this),e=[k[0],c];b.triggerHandler("setData"+k[1]+"!",e),d.data(this,a,c),b.triggerHandler("changeData"+k[1]+"!",e)})},removeData:function(a){return this.each(function(){d.removeData(this,a)})}}),d.extend({queue:function(a,b,c){if(a){b=(b||"fx")+"queue";var e=d._data(a,b);if(!c)return e||[];!e||d.isArray(c)?e=d._data(a,b,d.makeArray(c)):e.push(c);return e}},dequeue:function(a,b){b=b||"fx";var c=d.queue(a,b),e=c.shift();e==="inprogress"&&(e=c.shift()),e&&(b==="fx"&&c.unshift("inprogress"),e.call(a,function(){d.dequeue(a,b)})),c.length||d.removeData(a,b+"queue",!0)}}),d.fn.extend({queue:function(a,c){typeof a!=="string"&&(c=a,a="fx");if(c===b)return d.queue(this[0],a);return this.each(function(b){var e=d.queue(this,a,c);a==="fx"&&e[0]!=="inprogress"&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},delay:function(a,b){a=d.fx?d.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){d.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var j=/[\n\t\r]/g,k=/\s+/,l=/\r/g,m=/^(?:href|src|style)$/,n=/^(?:button|input)$/i,o=/^(?:button|input|object|select|textarea)$/i,p=/^a(?:rea)?$/i,q=/^(?:radio|checkbox)$/i;d.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},d.fn.extend({attr:function(a,b){return d.access(this,a,b,!0,d.attr)},removeAttr:function(a,b){return this.each(function(){d.attr(this,a,""),this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.addClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"){var b=(a||"").split(k);for(var c=0,e=this.length;c<e;c++){var f=this[c];if(f.nodeType===1)if(f.className){var g=" "+f.className+" ",h=f.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);f.className=d.trim(h)}else f.className=a}}return this},removeClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"||a===b){var c=(a||"").split(k);for(var e=0,f=this.length;e<f;e++){var g=this[e];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(j," ");for(var i=0,l=c.length;i<l;i++)h=h.replace(" "+c[i]+" "," ");g.className=d.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,e=typeof b==="boolean";if(d.isFunction(a))return this.each(function(c){var e=d(this);e.toggleClass(a.call(this,c,e.attr("class"),b),b)});return this.each(function(){if(c==="string"){var f,g=0,h=d(this),i=b,j=a.split(k);while(f=j[g++])i=e?i:!h.hasClass(f),h[i?"addClass":"removeClass"](f)}else if(c==="undefined"||c==="boolean")this.className&&d._data(this,"__className__",this.className),this.className=this.className||a===!1?"":d._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(j," ").indexOf(b)>-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var j=i?f:0,k=i?f+1:h.length;j<k;j++){var m=h[j];if(m.selected&&(d.support.optDisabled?!m.disabled:m.getAttribute("disabled")===null)&&(!m.parentNode.disabled||!d.nodeName(m.parentNode,"optgroup"))){a=d(m).val();if(i)return a;g.push(a)}}if(i&&!g.length&&h.length)return d(h[f]).val();return g}if(q.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(l,"")}return b}var n=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){n&&(e=a.call(this,b,c.val())),e==null?e="":typeof e==="number"?e+="":d.isArray(e)&&(e=d.map(e,function(a){return a==null?"":a+""}));if(d.isArray(e)&&q.test(this.type))this.checked=d.inArray(c.val(),e)>=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=m.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&n.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var k=a.getAttributeNode("tabIndex");return k&&k.specified?k.value:o.test(a.nodeName)||p.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var l=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return l===null?b:l}h&&(a[c]=e);return a[c]}});var r=/\.(.*)$/,s=/^(?:textarea|input|select)$/i,t=/\./g,u=/ /g,v=/[^\w\s.|`]/g,w=function(a){return a.replace(v,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=x;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(a){return typeof d!=="undefined"&&d.event.triggered!==a.type?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=x);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),w).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))d.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=d.event.special[h]||{};for(j=f||0;j<p.length;j++){q=p[j];if(e.guid===q.guid){if(l||n.test(q.namespace))f==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(f!=null)break}}if(p.length===0||f!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&d.removeEvent(a,h,s.handle),g=null,delete t[h]}if(d.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,d.isEmptyObject(s)&&d.removeData(a,b,!0)}}},trigger:function(a,c,e){var f=a.type||a,g=arguments[3];if(!g){a=typeof a==="object"?a[d.expando]?a:d.extend(d.Event(f),a):d.Event(f),f.indexOf("!")>=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(r,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=a.type,l[m]())}catch(p){}k&&(l["on"+m]=k),d.event.triggered=b}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l<m;l++){var n=f[l];if(e||h.test(n.namespace)){c.handler=n.handler,c.data=n.data,c.handleObj=n;var o=n.handler.apply(this,k);o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}}return c.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(a){if(a[d.expando])return a;var e=a;a=d.Event(e);for(var f=this.props.length,g;f;)g=this.props[--f],a[g]=e[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=c.documentElement,i=c.body;a.pageX=a.clientX+(h&&h.scrollLeft||i&&i.scrollLeft||0)-(h&&h.clientLeft||i&&i.clientLeft||0),a.pageY=a.clientY+(h&&h.scrollTop||i&&i.scrollTop||0)-(h&&h.clientTop||i&&i.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:d.proxy,special:{ready:{setup:d.bindReady,teardown:d.noop},live:{add:function(a){d.event.add(this,H(a.origType,a.selector),d.extend({},a,{handler:G,guid:a.handler.guid}))},remove:function(a){d.event.remove(this,H(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){d.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},d.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},d.Event=function(a){if(!this.preventDefault)return new d.Event(a);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?y:x):this.type=a,this.timeStamp=d.now(),this[d.expando]=!0},d.Event.prototype={preventDefault:function(){this.isDefaultPrevented=y;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=y;var a=this.originalEvent;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=y,this.stopPropagation()},isDefaultPrevented:x,isPropagationStopped:x,isImmediatePropagationStopped:x};var z=function(a){var b=a.relatedTarget;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(e){}},A=function(a){a.type=a.data,d.event.handle.apply(this,arguments)};d.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){d.event.special[a]={setup:function(c){d.event.add(this,b,c&&c.selector?A:z,a)},teardown:function(a){d.event.remove(this,b,a&&a.selector?A:z)}}}),d.support.submitBubbles||(d.event.special.submit={setup:function(a,b){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&d(b).closest("form").length&&E("submit",this,arguments)}),d.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&d(b).closest("form").length&&a.keyCode===13&&E("submit",this,arguments)});else return!1},teardown:function(a){d.event.remove(this,".specialSubmit")}});if(!d.support.changeBubbles){var B,C=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},D=function D(a){var c=a.target,e,f;if(s.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=C(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:D,beforedeactivate:D,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&D.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&D.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",C(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in B)d.event.add(this,c+".specialChange",B[c]);return s.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return s.test(this.nodeName)}},B=d.event.special.change.filters,B.focus=B.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function f(a){var c=d.event.fix(a);c.type=b,c.originalEvent={},d.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var e=0;d.event.special[b]={setup:function(){e++===0&&c.addEventListener(a,f,!0)},teardown:function(){--e===0&&c.removeEventListener(a,f,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i<j;i++)d.event.add(this[i],a,h,e);return this}}),d.fn.extend({unbind:function(a,b){if(typeof a!=="object"||a.preventDefault)for(var e=0,f=this.length;e<f;e++)d.event.remove(this[e],a,b);else for(var c in a)this.unbind(c,a[c]);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var c=d.Event(a);c.preventDefault(),c.stopPropagation(),d.event.trigger(c,b,this[0]);return c.result}},toggle:function(a){var b=arguments,c=1;while(c<b.length)d.proxy(a,b[c++]);return this.click(d.proxy(a,function(e){var f=(d._data(this,"lastToggle"+a.guid)||0)%c;d._data(this,"lastToggle"+a.guid,f+1),e.preventDefault();return b[f].apply(this,arguments)||!1}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var F={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};d.each(["live","die"],function(a,c){d.fn[c]=function(a,e,f,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:d(this.context);if(typeof a==="object"&&!a.preventDefault){for(var o in a)n[c](o,e,a[o],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=r.exec(h),k="",j&&(k=j[0],h=h.replace(r,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,h==="focus"||h==="blur"?(a.push(F[h]+k),h=h+k):h=(F[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)d.event.add(n[p],"live."+H(h,m),{data:e,selector:m,handler:f,origType:h,origHandler:f,preType:l});else n.unbind("live."+H(h,m),f)}return this}}),d.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(a,b){d.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!=="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.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(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!=="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!=="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return"text"===c&&(b===c||b===null)},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||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(a===b){g=!0;return 0}if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};d.find=k,d.expr=k.selectors,d.expr[":"]=d.expr.filters,d.unique=k.uniqueSort,d.text=k.getText,d.isXMLDoc=k.isXML,d.contains=k.contains}();var I=/Until$/,J=/^(?:parents|prevUntil|prevAll)/,K=/,/,L=/^.[^:#\[\.,]*$/,M=Array.prototype.slice,N=d.expr.match.POS,O={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({find:function(a){var b=this.pushStack("","find",a),c=0;for(var e=0,f=this.length;e<f;e++){c=b.length,d.find(a,this[e],b);if(e>0)for(var g=c;g<b.length;g++)for(var h=0;h<c;h++)if(b[h]===b[g]){b.splice(g--,1);break}}return b},has:function(a){var b=d(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(d.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(Q(this,a,!1),"not",a)},filter:function(a){return this.pushStack(Q(this,a,!0),"filter",a)},is:function(a){return!!a&&d.filter(a,this).length>0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e<f;e++)i=a[e],j[i]||(j[i]=d.expr.match.POS.test(i)?d(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=N.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e<f;e++){g=this[e];while(g){if(l?l.index(g)>-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(P(c[0])||P(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=M.call(arguments);I.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!O[a]?d.unique(f):f,(this.length>1||K.test(e))&&J.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var R=/ jQuery\d+="(?:\d+|null)"/g,S=/^\s+/,T=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,U=/<([\w:]+)/,V=/<tbody/i,W=/<|&#?\w+;/,X=/<(?:script|object|embed|option|style)/i,Y=/checked\s*(?:[^=]|=\s*.checked.)/i,Z={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,"",""]};Z.optgroup=Z.option,Z.tbody=Z.tfoot=Z.colgroup=Z.caption=Z.thead,Z.th=Z.td,d.support.htmlSerialize||(Z._default=[1,"div<div>","</div>"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(R,""):null;if(typeof a!=="string"||X.test(a)||!d.support.leadingWhitespace&&S.test(a)||Z[(U.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(T,"<$1></$2>");try{for(var c=0,e=this.length;c<e;c++)this[c].nodeType===1&&(d.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(f){this.empty().append(a)}}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(d.isFunction(a))return this.each(function(b){var c=d(this),e=c.html();c.replaceWith(a.call(this,b,e))});typeof a!=="string"&&(a=d(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;d(this).remove(),b?d(b).before(a):d(c).append(a)})}return this.length?this.pushStack(d(d.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,e){var f,g,h,i,j=a[0],k=[];if(!d.support.checkClone&&arguments.length===3&&typeof j==="string"&&Y.test(j))return this.each(function(){d(this).domManip(a,c,e,!0)});if(d.isFunction(j))return this.each(function(f){var g=d(this);a[0]=j.call(this,f,c?g.html():b),g.domManip(a,c,e)});if(this[0]){i=j&&j.parentNode,d.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?f={fragment:i}:f=d.buildFragment(a,this,k),h=f.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&d.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)e.call(c?$(this[l],g):this[l],f.cacheable||m>1&&l<n?d.clone(h,!0,!0):h)}k.length&&d.each(k,bc)}return this}}),d.buildFragment=function(a,b,e){var f,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]==="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!X.test(a[0])&&(d.support.checkClone||!Y.test(a[0]))&&(g=!0,h=d.fragments[a[0]],h&&(h!==1&&(f=h))),f||(f=i.createDocumentFragment(),d.clean(a,i,f,e)),g&&(d.fragments[a[0]]=h?f:1);return{fragment:f,cacheable:g}},d.fragments={},d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(c){var e=[],f=d(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&f.length===1){f[b](this[0]);return this}for(var h=0,i=f.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){ba(a,e),f=bb(a),g=bb(e);for(h=0;f[h];++h)ba(f[h],g[h])}if(b){_(a,e);if(c){f=bb(a),g=bb(e);for(h=0;f[h];++h)_(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||W.test(i)){if(typeof i==="string"){i=i.replace(T,"<$1></$2>");var j=(U.exec(i)||["",""])[1].toLowerCase(),k=Z[j]||Z._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=V.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]==="<table>"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&S.test(i)&&m.insertBefore(b.createTextNode(S.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bd=/alpha\([^)]*\)/i,be=/opacity=([^)]*)/,bf=/-([a-z])/ig,bg=/([A-Z]|^ms)/g,bh=/^-?\d+(?:px)?$/i,bi=/^-?\d/,bj={position:"absolute",visibility:"hidden",display:"block"},bk=["Left","Right"],bl=["Top","Bottom"],bm,bn,bo,bp=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bm(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bm)return bm(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bf,bp)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bq(a,b,e):d.swap(a,bj,function(){f=bq(a,b,e)});if(f<=0){f=bm(a,b,b),f==="0px"&&bo&&(f=bo(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bh.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return be.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bd.test(f)?f.replace(bd,e):c.filter+" "+e}}),d(function(){d.support.reliableMarginRight||(d.cssHooks.marginRight={get:function(a,b){var c;d.swap(a,{display:"inline-block"},function(){b?c=bm(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bn=function(a,c,e){var f,g,h;e=e.replace(bg,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bo=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bh.test(d)&&bi.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bm=bn||bo,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var br=/%20/g,bs=/\[\]$/,bt=/\r?\n/g,bu=/#.*$/,bv=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bw=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bx=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,by=/^(?:GET|HEAD)$/,bz=/^\/\//,bA=/\?/,bB=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bC=/^(?:select|textarea)/i,bD=/\s+/,bE=/([?&])_=[^&]*/,bF=/(^|\-)([a-z])/g,bG=function(a,b,c){return b+c.toUpperCase()},bH=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bI=d.fn.load,bJ={},bK={},bL,bM;try{bL=c.location.href}catch(bN){bL=c.createElement("a"),bL.href="",bL=bL.href}bM=bH.exec(bL.toLowerCase())||[],d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bI)return bI.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("<div>").append(c.replace(bB,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bC.test(this.nodeName)||bw.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(bt,"\r\n")}}):{name:b.name,value:c.replace(bt,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bL,isLocal:bx.test(bM[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bO(bJ),ajaxTransport:bO(bK),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bR(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bS(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bF,bG)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bv.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bu,"").replace(bz,bM[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bD),e.crossDomain==null&&(q=bH.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bM[1]||q[2]!=bM[2]||(q[3]||(q[1]==="http:"?80:443))!=(bM[3]||(bM[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bP(bJ,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!by.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(bA.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bE,"$1_="+w);e.url=x+(x===e.url?(bA.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bP(bK,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bQ(g,a[g],c,f);return e.join("&").replace(br,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bT=d.now(),bU=/(\=)\?(&|$)|\?\?/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bT++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bU.test(b.url)||f&&bU.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bU,l),b.url===j&&(f&&(k=k.replace(bU,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bV=d.now(),bW,bX;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bZ()||b$()}:bZ,bX=d.ajaxSettings.xhr(),d.support.ajax=!!bX,d.support.cors=bX&&"withCredentials"in bX,bX=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),!a.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bW[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bW||(bW={},bY()),h=bV++,g.onreadystatechange=bW[h]=c):c()},abort:function(){c&&c(0,1)}}}});var b_={},ca=/^(?:toggle|show|hide)$/,cb=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cc,cd=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(ce("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)e=this[g],f=e.style.display,!d._data(e,"olddisplay")&&f==="none"&&(f=e.style.display=""),f===""&&d.css(e,"display")==="none"&&d._data(e,"olddisplay",cf(e.nodeName));for(g=0;g<h;g++){e=this[g],f=e.style.display;if(f===""||f==="none")e.style.display=d._data(e,"olddisplay")||""}return this},hide:function(a,b,c){if(a||a===0)return this.animate(ce("hide",3),a,b,c);for(var e=0,f=this.length;e<f;e++){var g=d.css(this[e],"display");g!=="none"&&!d._data(this[e],"olddisplay")&&d._data(this[e],"olddisplay",g)}for(e=0;e<f;e++)this[e].style.display="none";return this},_toggle:d.fn.toggle,toggle:function(a,b,c){var e=typeof a==="boolean";d.isFunction(a)&&d.isFunction(b)?this._toggle.apply(this,arguments):a==null||e?this.each(function(){var b=e?a:d(this).is(":hidden");d(this)[b?"show":"hide"]()}):this.animate(ce("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,e){var f=d.speed(b,c,e);if(d.isEmptyObject(a))return this.each(f.complete);return this[f.queue===!1?"each":"queue"](function(){var b=d.extend({},f),c,e=this.nodeType===1,g=e&&d(this).is(":hidden"),h=this;for(c in a){var i=d.camelCase(c);c!==i&&(a[i]=a[c],delete a[c],c=i);if(a[c]==="hide"&&g||a[c]==="show"&&!g)return b.complete.call(this);if(e&&(c==="height"||c==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(d.css(this,"display")==="inline"&&d.css(this,"float")==="none")if(d.support.inlineBlockNeedsLayout){var j=cf(this.nodeName);j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)}else this.style.display="inline-block"}d.isArray(a[c])&&((b.specialEasing=b.specialEasing||{})[c]=a[c][1],a[c]=a[c][0])}b.overflow!=null&&(this.style.overflow="hidden"),b.curAnim=d.extend({},a),d.each(a,function(c,e){var f=new d.fx(h,b,c);if(ca.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=cb.exec(e),j=f.cur();if(i){var k=parseFloat(i[2]),l=i[3]||(d.cssNumber[c]?"":"px");l!=="px"&&(d.style(h,c,(k||1)+l),j=(k||1)/f.cur()*j,d.style(h,c,j+l)),i[1]&&(k=(i[1]==="-="?-1:1)*k+j),f.custom(j,k,l)}else f.custom(j,e,"")}});return!0})},stop:function(a,b){var c=d.timers;a&&this.queue([]),this.each(function(){for(var a=c.length-1;a>=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:ce("show",1),slideUp:ce("hide",1),slideToggle:ce("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!cc&&(cc=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||d.fx.stop()},interval:13,stop:function(){clearInterval(cc),cc=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){d.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),d.expr&&d.expr.filters&&(d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length});var cg=/^t(?:able|d|h)$/i,ch=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?d.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,g=f.documentElement;if(!c||!d.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=f.body,i=ci(f),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||d.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||d.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:d.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);d.offset.initialize();var c,e=b.offsetParent,f=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(d.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===e&&(l+=b.offsetTop,m+=b.offsetLeft,d.offset.doesNotAddBorder&&(!d.offset.doesAddBorderForTableAndCells||!cg.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),f=e,e=b.offsetParent),d.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;d.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},d.offset={initialize:function(){var a=c.body,b=c.createElement("div"),e,f,g,h,i=parseFloat(d.css(a,"marginTop"))||0,j="<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>";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=(e==="absolute"||e==="fixed")&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=ch.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!ch.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=ci(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=ci(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window);
\ No newline at end of file
diff --git a/frc971/http_status/web_test/app.js b/frc971/http_status/web_test/app.js
deleted file mode 100644
index 0e35079..0000000
--- a/frc971/http_status/web_test/app.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-From Seasocks version 1.1.2, under /src/ws_test_web
-
-Copyright (c) 2013, Matt Godbolt
-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.
-
-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 HOLDER 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 ws;
-
-$(function() {
- ws = new WebSocket('ws://' + document.location.host + '/ws');
- ws.onopen = function() {
- console.log('onopen');
- };
- ws.onclose = function() {
- $('#message').text('Lost connection.');
- console.log('onclose');
- };
- ws.onmessage = function(message) {
- console.log("got '" + message.data + "'");
- eval(message.data);
- };
- ws.onerror = function(error) {
- console.log('onerror ' + error);
- console.log(error);
- };
- $('#count').click(function() {
- ws.send($('#count').val());
- });
- $('#close').click(function() {
- ws.send('close');
- });
- $('#die').click(function() {
- ws.send('die');
- });
-});
-
-set = function(value) {
- $('#count').val(value)
-}
diff --git a/frc971/http_status/web_test/index.html b/frc971/http_status/web_test/index.html
deleted file mode 100644
index 778900c..0000000
--- a/frc971/http_status/web_test/index.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!--
-From Seasocks version 1.1.2, under /src/ws_test_web
-
-Copyright (c) 2013, Matt Godbolt
-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.
-
-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 HOLDER 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.
--->
-
-<!DOCTYPE html>
-<html>
- <head>
- <title>Hello, world</title>
- <script src='lib/jquery-1.4.4.js'></script>
- <script src='app.js'></script>
- </head>
- <body>
- <input id="count" type="button" value="..."></input>
- <input id="close" type="button" value="Close"></input>
- <input id="die" type="button" value="Die"></input>
- </body>
-</html>
-
diff --git a/frc971/http_status/www/index.html b/frc971/http_status/www/index.html
new file mode 100644
index 0000000..0fe83b4
--- /dev/null
+++ b/frc971/http_status/www/index.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+<title>Hello, world</title>
+<script type="text/javascript">
+var escapable =
+ /[\x00-\x1f\ud800-\udfff\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufff0-\uffff]/g;
+var ws;
+var intervalTime = 50;
+var safetyTimeout;
+var safetyIntervalTime = 10;
+var selected = 0;
+
+// Filter out junky JSON packets that will otherwise cause nasty decoding errors.
+function filterUnicode(quoted) {
+ escapable.lastIndex = 0;
+ if (!escapable.test(quoted)) return quoted;
+
+ return quoted.replace(escapable, function(a) {
+ return '';
+ });
+}
+
+// Change the current data index to plot on the graph.
+function changeSelected(select) {
+ selected = select;
+ document.getElementById("selected").innerHTML = "Selected: " + selected;
+}
+
+// Get a new JSON packet from the websocket on the robot.
+function refresh() {
+ ws.send(lastSampleID);
+ safetyTimeout = setTimeout(safetyRefresh, safetyIntervalTime);
+}
+
+function safetyRefresh(){
+ console.log("Safety timeout exceeded. Performing additional refresh...");
+ refresh();
+}
+
+window.onload = function() {
+ var dps = [];
+ var numDatas = 0;
+ var chart = new CanvasJS.Chart("chartContainer", {
+ title: {
+ text: "Live Data"
+ },
+ axisX: {
+ title: "Time (sec)"
+ },
+ axisY: {
+ title: "Units"
+ },
+ zoomEnabled: true,
+ panEnabled: true,
+ data: [{
+ color: 'rgba(119, 152, 191, 1.0)',
+ type: "scatter",
+ dataPoints: dps
+ }],
+ });
+
+ chart.render();
+
+ $(function() {
+ ws = new WebSocket('ws://' + document.location.host + '/ws');
+ run = true;
+ xVal = 1;
+ lastSampleID = -1;
+
+ // Socket created & first opened.
+ ws.onopen = function() {
+ run = true;
+ refresh();
+ };
+
+ // Socket disconnected.
+ ws.onclose = function() {
+ console.log('onclose');
+ run = false;
+ $('#message').text('Lost connection.');
+ };
+
+ // Received message over the socket, so parse and chart it.
+ ws.onmessage = function(message) {
+ console.log(message);
+ clearTimeout(safetyTimeout);
+ message = message.data;
+ //$('#data').html(message);
+ if(message.charAt(0) == "*"){
+ message = message.substring(1);
+ var names = message.split(",");
+ for (var i = numDatas; i < names.length; i++) {
+ $('#dataTable').append('<tr onClick="changeSelected(' + i +
+ ')"><td>' + names[i] + '</td><td></td></tr>');
+ numDatas++;
+ }
+ lastSampleID = 0;
+ }else{
+ var samples = message.split("$");
+ for(var x = 0;x < samples.length;x++){
+ var info = samples[x].split("%");
+ lastSampleID = info[0];
+
+ if(!(typeof info[2] === "undefined")){
+ var values = info[2].split(",");
+ for(var y = 0;y < values.length;y++){
+ if(!(typeof info[1] === "undefined"
+ || typeof values[y] === "undefined")){
+ $('#dataTable').find('tr').eq(y).find('td').eq(1)
+ .text(values[y]);
+ if(y == selected){
+ dps.push({
+ x: parseFloat(info[1]),
+ y: parseFloat(values[y])
+ });
+ if(dps.length > 10000){
+ dps.shift();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ chart.render();
+ }
+
+ if(run){
+ setTimeout(refresh, intervalTime);
+ }
+ };
+
+ // Socket error, most likely due to a server-side error.
+ ws.onerror = function(error) {
+ console.log('onerror ' + error);
+ run = false;
+ };
+ });
+}
+</script>
+<script type="text/javascript" src='/lib/jquery-1.4.4.js'></script>
+<script type="text/javascript" src='/lib/canvasjs.min.js'></script>
+<script type="text/javascript" src='/lib/reconnecting-websocket.min.js'></script>
+</head>
+<body>
+<div style="width: 1200px;margin-left: auto;margin-right:auto">
+ <table id="dataTable" style="width: 200px;cell-spacing:0;cell-padding:0;
+ text-align:left">
+ </table>
+ <div id="chartContainer" style="height:600px; width:100%;"></div>
+ <div style="width: 1000px;float: right">
+ <p id="message" style="color: #FF0000"></p>
+ <p id="selected">Selected: 0</p>
+ <p id="data"></p>
+ </div>
+</div>
+</body>
+</html>
diff --git a/frc971/http_status/www/lib/canvasjs.min.js b/frc971/http_status/www/lib/canvasjs.min.js
new file mode 100644
index 0000000..67fc83b
--- /dev/null
+++ b/frc971/http_status/www/lib/canvasjs.min.js
@@ -0,0 +1,429 @@
+/*
+ CanvasJS HTML5 & JavaScript Charts - v1.6.1 GA- http://canvasjs.com/
+ Copyright 2013 fenopix
+*/
+(function(){function O(a,b){a.prototype=Aa(b.prototype);a.prototype.constructor=a;a.parent=b.prototype}function Aa(a){function b(){}b.prototype=a;return new b}function qa(a,b,c){"millisecond"===c?a.setMilliseconds(a.getMilliseconds()+1*b):"second"===c?a.setSeconds(a.getSeconds()+1*b):"minute"===c?a.setMinutes(a.getMinutes()+1*b):"hour"===c?a.setHours(a.getHours()+1*b):"day"===c?a.setDate(a.getDate()+1*b):"week"===c?a.setDate(a.getDate()+7*b):"month"===c?a.setMonth(a.getMonth()+1*b):"year"===c&&a.setFullYear(a.getFullYear()+
+1*b);return a}function Y(a,b){return z[b+"Duration"]*a}function K(a,b){var c=!1;0>a&&(c=!0,a*=-1);a=""+a;for(b=b?b:1;a.length<b;)a="0"+a;return c?"-"+a:a}function Z(a){if(!a)return a;a=a.replace(/^\s\s*/,"");for(var b=/\s/,c=a.length;b.test(a.charAt(--c)););return a.slice(0,c+1)}function Ba(a){a.roundRect=function(a,c,d,e,f,g,k,p){k&&(this.fillStyle=k);p&&(this.strokeStyle=p);"undefined"===typeof f&&(f=5);this.lineWidth=g;this.beginPath();this.moveTo(a+f,c);this.lineTo(a+d-f,c);this.quadraticCurveTo(a+
+d,c,a+d,c+f);this.lineTo(a+d,c+e-f);this.quadraticCurveTo(a+d,c+e,a+d-f,c+e);this.lineTo(a+f,c+e);this.quadraticCurveTo(a,c+e,a,c+e-f);this.lineTo(a,c+f);this.quadraticCurveTo(a,c,a+f,c);this.closePath();k&&this.fill();p&&0<g&&this.stroke()}}function ra(a,b){return a-b}function Ca(a,b){return a.x-b.x}function C(a){var b=((a&16711680)>>16).toString(16),c=((a&65280)>>8).toString(16);a=((a&255)>>0).toString(16);b=2>b.length?"0"+b:b;c=2>c.length?"0"+c:c;a=2>a.length?"0"+a:a;return"#"+b+c+a}function ca(a,
+b,c){c=c||"normal";var d=a+"_"+b+"_"+c,e=sa[d];if(isNaN(e)){try{a="position:absolute; left:0px; top:-20000px; padding:0px;margin:0px;border:none;white-space:pre;line-height:normal;font-family:"+a+"; font-size:"+b+"px; font-weight:"+c+";";if(!R){var f=document.body;R=document.createElement("span");R.innerHTML="";var g=document.createTextNode("Mpgyi");R.appendChild(g);f.appendChild(R)}R.style.display="";R.setAttribute("style",a);e=Math.round(R.offsetHeight);R.style.display="none"}catch(k){e=Math.ceil(1.1*
+b)}e=Math.max(e,b);sa[d]=e}return e}function E(a,b,c,d){if(a.addEventListener)a.addEventListener(b,c,d||!1);else if(a.attachEvent)a.attachEvent("on"+b,function(b){b=b||window.event;b.preventDefault=b.preventDefault||function(){b.returnValue=!1};b.stopPropagation=b.stopPropagation||function(){b.cancelBubble=!0};c.call(a,b)});else return!1}function ta(a,b,c){a*=H;b*=H;a=c.getImageData(a,b,2,2).data;b=!0;for(c=0;4>c;c++)if(a[c]!==a[c+4]|a[c]!==a[c+8]|a[c]!==a[c+12]){b=!1;break}return b?a[0]<<16|a[1]<<
+8|a[2]:0}function ua(a,b,c){var d;d=a?a+"FontStyle":"fontStyle";var e=a?a+"FontWeight":"fontWeight",f=a?a+"FontSize":"fontSize";a=a?a+"FontFamily":"fontFamily";d=""+(b[d]?b[d]+" ":c&&c[d]?c[d]+" ":"");d+=b[e]?b[e]+" ":c&&c[e]?c[e]+" ":"";d+=b[f]?b[f]+"px ":c&&c[f]?c[f]+"px ":"";b=b[a]?b[a]+"":c&&c[a]?c[a]+"":"";!t&&b&&(b=b.split(",")[0],"'"!==b[0]&&'"'!==b[0]&&(b="'"+b+"'"));return d+=b}function T(a,b,c){return a in b?b[a]:c[a]}function da(a,b,c){if(t&&va){var d=a.getContext("2d");ea=d.webkitBackingStorePixelRatio||
+d.mozBackingStorePixelRatio||d.msBackingStorePixelRatio||d.oBackingStorePixelRatio||d.backingStorePixelRatio||1;H=ja/ea;a.width=b*H;a.height=c*H;ja!==ea&&(a.style.width=b+"px",a.style.height=c+"px",d.scale(H,H))}else a.width=b,a.height=c}function U(a,b){var c=document.createElement("canvas");c.setAttribute("class","canvasjs-chart-canvas");da(c,a,b);t||"undefined"===typeof G_vmlCanvasManager||G_vmlCanvasManager.initElement(c);return c}function wa(a,b,c){if(a&&b&&c){c=c+"."+("jpeg"===b?"jpg":b);var d=
+"image/"+b;a=a.toDataURL(d);var e=!1,f=document.createElement("a");f.download=c;f.href=a;f.target="_blank";if("undefined"!==typeof Blob&&new Blob){for(var g=a.replace(/^data:[a-z/]*;base64,/,""),g=atob(g),k=new ArrayBuffer(g.length),p=new Uint8Array(k),h=0;h<g.length;h++)p[h]=g.charCodeAt(h);b=new Blob([k],{type:"image/"+b});try{window.navigator.msSaveBlob(b,c),e=!0}catch(l){f.dataset.downloadurl=[d,f.download,f.href].join(":"),f.href=window.URL.createObjectURL(b)}}if(!e)try{event=document.createEvent("MouseEvents"),
+event.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),f.dispatchEvent?f.dispatchEvent(event):f.fireEvent&&f.fireEvent("onclick")}catch(r){b=window.open(),b.document.write("<img src='"+a+"'></img><div>Please right click on the image and save it to your device</div>"),b.document.close()}}}function M(a,b,c){b.getAttribute("state")!==c&&(b.setAttribute("state",c),b.setAttribute("type","button"),b.style.position="relative",b.style.margin="0px 0px 0px 0px",b.style.padding="3px 4px 0px 4px",
+b.style.cssFloat="left",b.setAttribute("title",a._cultureInfo[c+"Text"]),b.innerHTML="<img style='height:16px;' src='"+Da[c].image+"' alt='"+a._cultureInfo[c+"Text"]+"' />")}function ka(){for(var a=null,b=0;b<arguments.length;b++)a=arguments[b],a.style&&(a.style.display="inline")}function S(){for(var a=null,b=0;b<arguments.length;b++)(a=arguments[b])&&a.style&&(a.style.display="none")}function L(a,b,c){this._defaultsKey=a;var d={};c&&(W[c]&&W[c][a])&&(d=W[c][a]);this._options=b?b:{};this.setOptions(this._options,
+d)}function v(a,b,c){this._publicChartReference=c;b=b||{};v.parent.constructor.call(this,"Chart",b,b.theme?b.theme:"theme1");var d=this;this._containerId=a;this._objectsInitialized=!1;this.overlaidCanvasCtx=this.ctx=null;this._indexLabels=[];this._panTimerId=0;this._lastTouchEventType="";this._lastTouchData=null;this.isAnimating=!1;this.renderCount=0;this.panEnabled=this.disableToolTip=this.animatedRender=!1;this._defaultCursor="default";this.plotArea={canvas:null,ctx:null,x1:0,y1:0,x2:0,y2:0,width:0,
+height:0};this._dataInRenderedOrder=[];(this._container="string"===typeof this._containerId?document.getElementById(this._containerId):this._containerId)?(this._container.innerHTML="",b=a=0,a=this._options.width?this.width:0<this._container.clientWidth?this._container.clientWidth:this.width,b=this._options.height?this.height:0<this._container.clientHeight?this._container.clientHeight:this.height,this.width=a,this.height=b,this._selectedColorSet="undefined"!==typeof V[this.colorSet]?V[this.colorSet]:
+V.colorSet1,this._canvasJSContainer=document.createElement("div"),this._canvasJSContainer.setAttribute("class","canvasjs-chart-container"),this._canvasJSContainer.style.position="relative",this._canvasJSContainer.style.textAlign="left",this._canvasJSContainer.style.cursor="auto",t||(this._canvasJSContainer.style.height="0px"),this._container.appendChild(this._canvasJSContainer),this.canvas=U(a,b),this.canvas.style.position="absolute",this.canvas.getContext&&(this._canvasJSContainer.appendChild(this.canvas),
+this.ctx=this.canvas.getContext("2d"),this.ctx.textBaseline="top",Ba(this.ctx),t?this.plotArea.ctx=this.ctx:(this.plotArea.canvas=U(a,b),this.plotArea.canvas.style.position="absolute",this.plotArea.canvas.setAttribute("class","plotAreaCanvas"),this._canvasJSContainer.appendChild(this.plotArea.canvas),this.plotArea.ctx=this.plotArea.canvas.getContext("2d")),this.overlaidCanvas=U(a,b),this.overlaidCanvas.style.position="absolute",this._canvasJSContainer.appendChild(this.overlaidCanvas),this.overlaidCanvasCtx=
+this.overlaidCanvas.getContext("2d"),this.overlaidCanvasCtx.textBaseline="top",this._eventManager=new $(this),E(window,"resize",function(){d._updateSize()&&d.render()}),this._toolBar=document.createElement("div"),this._toolBar.setAttribute("class","canvasjs-chart-toolbar"),this._toolBar.style.cssText="position: absolute; right: 2px; top: 0px;",this._canvasJSContainer.appendChild(this._toolBar),this.bounds={x1:0,y1:0,x2:this.width,y2:this.height},E(this.overlaidCanvas,"click",function(a){d._mouseEventHandler(a)}),
+E(this.overlaidCanvas,"mousemove",function(a){d._mouseEventHandler(a)}),E(this.overlaidCanvas,"mouseup",function(a){d._mouseEventHandler(a)}),E(this.overlaidCanvas,"mousedown",function(a){d._mouseEventHandler(a);S(d._dropdownMenu)}),E(this.overlaidCanvas,"mouseout",function(a){d._mouseEventHandler(a)}),E(this.overlaidCanvas,window.navigator.msPointerEnabled?"MSPointerDown":"touchstart",function(a){d._touchEventHandler(a)}),E(this.overlaidCanvas,window.navigator.msPointerEnabled?"MSPointerMove":"touchmove",
+function(a){d._touchEventHandler(a)}),E(this.overlaidCanvas,window.navigator.msPointerEnabled?"MSPointerUp":"touchend",function(a){d._touchEventHandler(a)}),E(this.overlaidCanvas,window.navigator.msPointerEnabled?"MSPointerCancel":"touchcancel",function(a){d._touchEventHandler(a)}),this._creditLink||(this._creditLink=document.createElement("a"),this._creditLink.setAttribute("class","canvasjs-chart-credit"),this._creditLink.setAttribute("style","outline:none;margin:0px;position:absolute;right:3px;top:"+
+(this.height-14)+"px;color:dimgrey;text-decoration:none;font-size:10px;font-family:Lucida Grande, Lucida Sans Unicode, Arial, sans-serif"),this._creditLink.setAttribute("tabIndex",-1),this._creditLink.setAttribute("target","_blank")),this._toolTip=new N(this,this._options.toolTip,this.theme),this.layoutManager=new aa(this),this.axisY2=this.axisY=this.axisX=this.data=null,this.sessionVariables={axisX:{internalMinimum:null,internalMaximum:null},axisY:{internalMinimum:null,internalMaximum:null},axisY2:{internalMinimum:null,
+internalMaximum:null}})):window.console&&window.console.log('CanvasJS Error: Chart Container with id "'+this._containerId+'" was not found')}function fa(a,b){for(var c=[],d=0;d<a.length;d++)if(0==d)c.push(a[0]);else{var e,f,g;g=d-1;e=0===g?0:g-1;f=g===a.length-1?g:g+1;c[c.length]={x:a[g].x+(a[f].x-a[e].x)/b/3,y:a[g].y+(a[f].y-a[e].y)/b/3};g=d;e=0===g?0:g-1;f=g===a.length-1?g:g+1;c[c.length]={x:a[g].x-(a[f].x-a[e].x)/b/3,y:a[g].y-(a[f].y-a[e].y)/b/3};c[c.length]=a[d]}return c}function aa(a){this._rightOccupied=
+this._leftOccupied=this._bottomOccupied=this._topOccupied=0;this.chart=a}function I(a,b){I.parent.constructor.call(this,"TextBlock",b);this.ctx=a;this._isDirty=!0;this._wrappedText=null;this._lineHeight=ca(this.fontFamily,this.fontSize,this.fontWeight)}function ba(a,b){ba.parent.constructor.call(this,"Title",b,a.theme);this.chart=a;this.canvas=a.canvas;this.ctx=this.chart.ctx;"undefined"===typeof this._options.fontSize&&(this.fontSize=this.chart.getAutoFontSize(this.fontSize));this.height=this.width=
+null;this.bounds={x1:null,y1:null,x2:null,y2:null}}function ga(a,b,c){ga.parent.constructor.call(this,"Legend",b,c);this.chart=a;this.canvas=a.canvas;this.ctx=this.chart.ctx;this.ghostCtx=this.chart._eventManager.ghostCtx;this.items=[];this.height=this.width=0;this.orientation=null;this.horizontalSpacing=10;this.dataSeries=[];this.bounds={x1:null,y1:null,x2:null,y2:null};"undefined"===typeof this._options.fontSize&&(this.fontSize=this.chart.getAutoFontSize(this.fontSize));this.lineHeight=ca(this.fontFamily,
+this.fontSize,this.fontWeight)}function la(a,b){la.parent.constructor.call(this,b);this.chart=a;this.canvas=a.canvas;this.ctx=this.chart.ctx}function P(a,b,c,d,e){P.parent.constructor.call(this,"DataSeries",b,c);this.chart=a;this.canvas=a.canvas;this._ctx=a.canvas.ctx;this.index=d;this.noDataPointsInPlotArea=0;this.id=e;this.chart._eventManager.objectMap[e]={id:e,objectType:"dataSeries",dataSeriesIndex:d};this.dataPointIds=[];this.plotUnit=[];this.axisY=this.axisX=null;null===this.fillOpacity&&(this.type.match(/area/i)?
+this.fillOpacity=0.7:this.fillOpacity=1);this.axisPlacement=this.getDefaultAxisPlacement();"undefined"===typeof this._options.indexLabelFontSize&&(this.indexLabelFontSize=this.chart.getAutoFontSize(this.indexLabelFontSize))}function A(a,b,c,d){A.parent.constructor.call(this,"Axis",b,a.theme);this.chart=a;this.canvas=a.canvas;this.ctx=a.ctx;this.intervalstartTimePercent=this.maxHeight=this.maxWidth=0;this.labels=[];this._labels=null;this.dataInfo={min:Infinity,max:-Infinity,viewPortMin:Infinity,viewPortMax:-Infinity,
+minDiff:Infinity};"axisX"===c?(this.sessionVariables=this.chart.sessionVariables[c],this._options.interval||(this.intervalType=null)):this.sessionVariables="left"===d||"top"===d?this.chart.sessionVariables.axisY:this.chart.sessionVariables.axisY2;"undefined"===typeof this._options.titleFontSize&&(this.titleFontSize=this.chart.getAutoFontSize(this.titleFontSize));"undefined"===typeof this._options.labelFontSize&&(this.labelFontSize=this.chart.getAutoFontSize(this.labelFontSize));this.type=c;"axisX"!==
+c||b&&"undefined"!==typeof b.gridThickness||(this.gridThickness=0);this._position=d;this.lineCoordinates={x1:null,y1:null,x2:null,y2:null,width:null};this.labelAngle=(this.labelAngle%360+360)%360;90<this.labelAngle&&270>=this.labelAngle?this.labelAngle-=180:180<this.labelAngle&&270>=this.labelAngle?this.labelAngle-=180:270<this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360);if(this._options.stripLines&&0<this._options.stripLines.length)for(this.stripLines=[],b=0;b<this._options.stripLines.length;b++)this.stripLines.push(new ma(this.chart,
+this._options.stripLines[b],a.theme,++this.chart._eventManager.lastObjectId));this._absoluteMaximum=this._absoluteMinimum=this._titleTextBlock=null;this.hasOptionChanged("minimum")&&(this.sessionVariables.internalMinimum=this.minimum);this.hasOptionChanged("maximum")&&(this.sessionVariables.internalMaximum=this.maximum);this.trackChanges("minimum");this.trackChanges("maximum")}function ma(a,b,c,d){ma.parent.constructor.call(this,"StripLine",b,c);this._thicknessType="pixel";this.id=d;null!==this.startValue&&
+null!==this.endValue&&(this.value=((this.startValue.getTime?this.startValue.getTime():this.startValue)+(this.endValue.getTime?this.endValue.getTime():this.endValue))/2,this.thickness=Math.max(this.endValue-this.startValue),this._thicknessType="value")}function N(a,b,c){N.parent.constructor.call(this,"ToolTip",b,c);this.chart=a;this.canvas=a.canvas;this.ctx=this.chart.ctx;this.currentDataPointIndex=this.currentSeriesIndex=-1;this._timerId=0;this._prevY=this._prevX=NaN;this._initialize()}function $(a){this.chart=
+a;this.lastObjectId=0;this.objectMap=[];this.rectangularRegionEventSubscriptions=[];this.previousDataPointEventObject=null;this.ghostCanvas=U(this.chart.width,this.chart.height);this.ghostCtx=this.ghostCanvas.getContext("2d");this.mouseoveredObjectMaps=[]}function xa(a,b){var c;b&&na[b]&&(c=na[b]);ba.parent.constructor.call(this,"CultureInfo",c,a.theme);this.chart=a;this.canvas=a.canvas;this.ctx=this.chart.ctx}function oa(a){this.chart=a;this.ctx=this.chart.plotArea.ctx;this.animations=[];this.animationRequestId=
+null}var t=!!document.createElement("canvas").getContext,ha={Chart:{width:500,height:400,zoomEnabled:!1,backgroundColor:"white",theme:"theme1",animationEnabled:!1,animationDuration:1200,colorSet:"colorSet1",culture:"en",creditText:"CanvasJS.com",interactivityEnabled:!0,exportEnabled:!1,exportFileName:"Chart"},Title:{padding:0,text:null,verticalAlign:"top",horizontalAlign:"center",fontSize:20,fontFamily:"Calibri",fontWeight:"normal",fontColor:"black",fontStyle:"normal",borderThickness:0,borderColor:"black",
+cornerRadius:0,backgroundColor:null,margin:5},Legend:{name:null,verticalAlign:"center",horizontalAlign:"right",fontSize:14,fontFamily:"calibri",fontWeight:"normal",fontColor:"black",fontStyle:"normal",cursor:null,itemmouseover:null,itemmouseout:null,itemmousemove:null,itemclick:null},ToolTip:{enabled:!0,borderColor:null,shared:!1,animationEnabled:!0,content:null},Axis:{minimum:null,maximum:null,interval:null,intervalType:null,title:null,titleFontColor:"black",titleFontSize:20,titleFontFamily:"arial",
+titleFontWeight:"normal",titleFontStyle:"normal",labelAngle:0,labelFontFamily:"arial",labelFontColor:"black",labelFontSize:12,labelFontWeight:"normal",labelFontStyle:"normal",labelAutoFit:!1,labelWrap:!0,labelMaxWidth:null,prefix:"",suffix:"",includeZero:!0,tickLength:5,tickColor:"black",tickThickness:1,lineColor:"black",lineThickness:1,gridColor:"A0A0A0",gridThickness:0,interlacedColor:null,valueFormatString:null,margin:2,stripLines:[]},StripLine:{value:null,startValue:null,endValue:null,color:"orange",
+thickness:2,label:"",labelBackgroundColor:"#EEEEEE",labelFontFamily:"arial",labelFontColor:"orange",labelFontSize:12,labelFontWeight:"normal",labelFontStyle:"normal"},DataSeries:{name:null,dataPoints:null,label:"",bevelEnabled:!1,cursor:null,indexLabel:"",indexLabelPlacement:"auto",indexLabelOrientation:"horizontal",indexLabelFontColor:"black",indexLabelFontSize:12,indexLabelFontStyle:"normal",indexLabelFontFamily:"Arial",indexLabelFontWeight:"normal",indexLabelBackgroundColor:null,indexLabelLineColor:null,
+indexLabelLineThickness:1,indexLabelMaxWidth:null,indexLabelWrap:!0,lineThickness:2,color:null,risingColor:"white",fillOpacity:null,startAngle:0,type:"column",xValueType:"number",axisYType:"primary",xValueFormatString:null,yValueFormatString:null,zValueFormatString:null,percentFormatString:null,showInLegend:null,legendMarkerType:null,legendMarkerColor:null,legendText:null,legendMarkerBorderColor:null,legendMarkerBorderThickness:null,markerType:"circle",markerColor:null,markerSize:null,markerBorderColor:null,
+markerBorderThickness:null,mouseover:null,mouseout:null,mousemove:null,click:null,toolTipContent:null,visible:!0},CultureInfo:{decimalSeparator:".",digitGroupSeparator:",",zoomText:"Zoom",panText:"Pan",resetText:"Reset",menuText:"More Options",saveJPGText:"Save as JPG",savePNGText:"Save as PNG",days:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),shortDays:"Sun Mon Tue Wed Thu Fri Sat".split(" "),months:"January February March April May June July August September October November December".split(" "),
+shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" ")},TextBlock:{x:0,y:0,width:null,height:null,maxWidth:null,maxHeight:null,padding:0,angle:0,text:"",horizontalAlign:"center",fontSize:12,fontFamily:"calibri",fontWeight:"normal",fontColor:"black",fontStyle:"normal",borderThickness:0,borderColor:"black",cornerRadius:0,backgroundColor:null,textBaseline:"top"}},na={en:{}},V={colorSet1:"#369EAD #C24642 #7F6084 #86B402 #A2D1CF #C8B631 #6DBCEB #52514E #4F81BC #A064A1 #F79647".split(" "),
+colorSet2:"#4F81BC #C0504E #9BBB58 #23BFAA #8064A1 #4AACC5 #F79647 #33558B".split(" "),colorSet3:"#8CA1BC #36845C #017E82 #8CB9D0 #708C98 #94838D #F08891 #0366A7 #008276 #EE7757 #E5BA3A #F2990B #03557B #782970".split(" ")},W={theme1:{Chart:{colorSet:"colorSet1"},Title:{fontFamily:t?"Calibri, Optima, Candara, Verdana, Geneva, sans-serif":"calibri",fontSize:33,fontColor:"#3A3A3A",fontWeight:"bold",verticalAlign:"top",margin:10},Axis:{titleFontSize:26,titleFontColor:"#666666",titleFontFamily:t?"Calibri, Optima, Candara, Verdana, Geneva, sans-serif":
+"calibri",labelFontFamily:t?"Calibri, Optima, Candara, Verdana, Geneva, sans-serif":"calibri",labelFontSize:18,labelFontColor:"grey",tickColor:"#BBBBBB",tickThickness:2,gridThickness:2,gridColor:"#BBBBBB",lineThickness:2,lineColor:"#BBBBBB"},Legend:{verticalAlign:"bottom",horizontalAlign:"center",fontFamily:t?"monospace, sans-serif,arial black":"calibri"},DataSeries:{indexLabelFontColor:"grey",indexLabelFontFamily:t?"Calibri, Optima, Candara, Verdana, Geneva, sans-serif":"calibri",indexLabelFontSize:18,
+indexLabelLineThickness:1}},theme2:{Chart:{colorSet:"colorSet2"},Title:{fontFamily:"impact, charcoal, arial black, sans-serif",fontSize:32,fontColor:"#333333",verticalAlign:"top",margin:10},Axis:{titleFontSize:22,titleFontColor:"rgb(98,98,98)",titleFontFamily:t?"monospace, sans-serif,arial black":"arial",titleFontWeight:"bold",labelFontFamily:t?"monospace, Courier New, Courier":"arial",labelFontSize:16,labelFontColor:"grey",labelFontWeight:"bold",tickColor:"grey",tickThickness:2,gridThickness:2,gridColor:"grey",
+lineThickness:0},Legend:{verticalAlign:"bottom",horizontalAlign:"center",fontFamily:t?"monospace, sans-serif,arial black":"arial"},DataSeries:{indexLabelFontColor:"grey",indexLabelFontFamily:t?"Courier New, Courier, monospace":"arial",indexLabelFontWeight:"bold",indexLabelFontSize:18,indexLabelLineThickness:1}},theme3:{Chart:{colorSet:"colorSet1"},Title:{fontFamily:t?"Candara, Optima, Trebuchet MS, Helvetica Neue, Helvetica, Trebuchet MS, serif":"calibri",fontSize:32,fontColor:"#3A3A3A",fontWeight:"bold",
+verticalAlign:"top",margin:10},Axis:{titleFontSize:22,titleFontColor:"rgb(98,98,98)",titleFontFamily:t?"Verdana, Geneva, Calibri, sans-serif":"calibri",labelFontFamily:t?"Calibri, Optima, Candara, Verdana, Geneva, sans-serif":"calibri",labelFontSize:18,labelFontColor:"grey",tickColor:"grey",tickThickness:2,gridThickness:2,gridColor:"grey",lineThickness:2,lineColor:"grey"},Legend:{verticalAlign:"bottom",horizontalAlign:"center",fontFamily:t?"monospace, sans-serif,arial black":"calibri"},DataSeries:{bevelEnabled:!0,
+indexLabelFontColor:"grey",indexLabelFontFamily:t?"Candara, Optima, Calibri, Verdana, Geneva, sans-serif":"calibri",indexLabelFontSize:18,indexLabelLineColor:"lightgrey",indexLabelLineThickness:2}}},z={numberDuration:1,yearDuration:314496E5,monthDuration:2592E6,weekDuration:6048E5,dayDuration:864E5,hourDuration:36E5,minuteDuration:6E4,secondDuration:1E3,millisecondDuration:1,dayOfWeekFromInt:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" ")},sa={},R=null,ya=function(){var a=/D{1,4}|M{1,4}|Y{1,4}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|f{1,3}|t{1,2}|T{1,2}|K|z{1,3}|"[^"]*"|'[^']*'/g,
+b="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),c="Sun Mon Tue Wed Thu Fri Sat".split(" "),d="January February March April May June July August September October November December".split(" "),e="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),f=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,g=/[^-+\dA-Z]/g;return function(k,p,h){var l=h?h.days:b,r=h?h.months:d,m=h?h.shortDays:
+c,q=h?h.shortMonths:e;h="";var n=!1;k=k&&k.getTime?k:k?new Date(k):new Date;if(isNaN(k))throw SyntaxError("invalid date");"UTC:"===p.slice(0,4)&&(p=p.slice(4),n=!0);h=n?"getUTC":"get";var s=k[h+"Date"](),t=k[h+"Day"](),u=k[h+"Month"](),x=k[h+"FullYear"](),w=k[h+"Hours"](),Q=k[h+"Minutes"](),G=k[h+"Seconds"](),v=k[h+"Milliseconds"](),y=n?0:k.getTimezoneOffset();return h=p.replace(a,function(a){switch(a){case "D":return s;case "DD":return K(s,2);case "DDD":return m[t];case "DDDD":return l[t];case "M":return u+
+1;case "MM":return K(u+1,2);case "MMM":return q[u];case "MMMM":return r[u];case "Y":return parseInt(String(x).slice(-2));case "YY":return K(String(x).slice(-2),2);case "YYY":return K(String(x).slice(-3),3);case "YYYY":return K(x,4);case "h":return w%12||12;case "hh":return K(w%12||12,2);case "H":return w;case "HH":return K(w,2);case "m":return Q;case "mm":return K(Q,2);case "s":return G;case "ss":return K(G,2);case "f":return String(v).slice(0,1);case "ff":return K(String(v).slice(0,2),2);case "fff":return K(String(v).slice(0,
+3),3);case "t":return 12>w?"a":"p";case "tt":return 12>w?"am":"pm";case "T":return 12>w?"A":"P";case "TT":return 12>w?"AM":"PM";case "K":return n?"UTC":(String(k).match(f)||[""]).pop().replace(g,"");case "z":return(0<y?"-":"+")+Math.floor(Math.abs(y)/60);case "zz":return(0<y?"-":"+")+K(Math.floor(Math.abs(y)/60),2);case "zzz":return(0<y?"-":"+")+K(Math.floor(Math.abs(y)/60),2)+K(Math.abs(y)%60,2);default:return a.slice(1,a.length-1)}})}}(),X=function(a,b,c){if(null===a)return"";a=Number(a);var d=
+0>a?!0:!1;d&&(a*=-1);var e=c?c.decimalSeparator:".",f=c?c.digitGroupSeparator:",",g="";b=String(b);var g=1,k=c="",p=-1,h=[],l=[],r=0,m=0,q=0,n=!1,s=0,k=b.match(/"[^"]*"|'[^']*'|[eE][+-]*[0]+|[,]+[.]|\u2030|./g);b=null;for(var t=0;k&&t<k.length;t++)if(b=k[t],"."===b&&0>p)p=t;else{if("%"===b)g*=100;else if("\u2030"===b){g*=1E3;continue}else if(","===b[0]&&"."===b[b.length-1]){g/=Math.pow(1E3,b.length-1);p=t+b.length-1;continue}else"E"!==b[0]&&"e"!==b[0]||"0"!==b[b.length-1]||(n=!0);0>p?(h.push(b),"#"===
+b||"0"===b?r++:","===b&&q++):(l.push(b),"#"!==b&&"0"!==b||m++)}n&&(b=Math.floor(a),s=(0===b?"":String(b)).length-r,g/=Math.pow(10,s));0>p&&(p=t);g=(a*g).toFixed(m);b=g.split(".");g=(b[0]+"").split("");a=(b[1]+"").split("");g&&"0"===g[0]&&g.shift();for(t=n=k=m=p=0;0<h.length;)if(b=h.pop(),"#"===b||"0"===b)if(p++,p===r){var u=g,g=[];if("0"===b)for(b=r-m-(u?u.length:0);0<b;)u.unshift("0"),b--;for(;0<u.length;)c=u.pop()+c,t++,0===t%n&&(k===q&&0<u.length)&&(c=f+c);d&&(c="-"+c)}else 0<g.length?(c=g.pop()+
+c,m++,t++):"0"===b&&(c="0"+c,m++,t++),0===t%n&&(k===q&&0<g.length)&&(c=f+c);else"E"!==b[0]&&"e"!==b[0]||"0"!==b[b.length-1]||!/[eE][+-]*[0]+/.test(b)?","===b?(k++,n=t,t=0,0<g.length&&(c=f+c)):c=1<b.length&&('"'===b[0]&&'"'===b[b.length-1]||"'"===b[0]&&"'"===b[b.length-1])?b.slice(1,b.length-1)+c:b+c:(b=0>s?b.replace("+","").replace("-",""):b.replace("-",""),c+=b.replace(/[0]+/,function(a){return K(s,a.length)}));d="";for(f=!1;0<l.length;)b=l.shift(),"#"===b||"0"===b?0<a.length&&0!==Number(a.join(""))?
+(d+=a.shift(),f=!0):"0"===b&&(d+="0",f=!0):1<b.length&&('"'===b[0]&&'"'===b[b.length-1]||"'"===b[0]&&"'"===b[b.length-1])?d+=b.slice(1,b.length-1):"E"!==b[0]&&"e"!==b[0]||"0"!==b[b.length-1]||!/[eE][+-]*[0]+/.test(b)?d+=b:(b=0>s?b.replace("+","").replace("-",""):b.replace("-",""),d+=b.replace(/[0]+/,function(a){return K(s,a.length)}));return c+((f?e:"")+d)},ia=function(a){var b=0,c=0;a=a||window.event;a.offsetX||0===a.offsetX?(b=a.offsetX,c=a.offsetY):a.layerX||0==a.layerX?(b=a.layerX,c=a.layerY):
+(b=a.pageX-a.target.offsetLeft,c=a.pageY-a.target.offsetTop);return{x:b,y:c}},va=!0,ja=window.devicePixelRatio||1,ea=1,H=va?ja/ea:1,Da={reset:{image:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAcCAYAAAAAwr0iAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAKRSURBVEiJrdY/iF1FFMfxzwnZrGISUSR/JLGIhoh/QiRNBLWxMLIWEkwbgiAoFgoW2mhlY6dgpY2IlRBRxBSKhSAKIklWJRYuMZKAhiyopAiaTY7FvRtmZ+/ed9/zHRjezLw5v/O9d86cuZGZpmURAfdn5o9DfdZNLXpjz+LziPgyIl6MiG0jPTJzZBuyDrP4BVm0P/AKbljTb4ToY/gGewYA7KyCl+1b3DUYANvwbiHw0gCAGRzBOzjTAXEOu0cC4Ch+r5x/HrpdrcZmvIDFSucMtnYCYC++6HmNDw8FKDT34ETrf639/azOr5vwRk/g5fbeuABtgC04XWk9VQLciMP4EH/3AFzErRNC7MXlQmsesSoHsGPE23hmEoBW+61K66HMXFmIMvN8myilXS36R01ub+KfYvw43ZXwYDX+AHP4BAci4pFJomfmr/ihmNofESsBImJGk7mlncrM45n5JPbhz0kAWpsv+juxaX21YIPmVJS2uNzJMS6ZNexC0d+I7fUWXLFyz2kSZlpWPvASlmqAf/FXNXf3FAF2F/1LuFifAlionB6dRuSI2IwHi6lzmXmp6xR8XY0fiIh7psAwh+3FuDkRHQVjl+a8lkXjo0kLUKH7XaV5oO86PmZ1FTzyP4K/XGl9v/zwfbW7BriiuETGCP5ch9bc9f97HF/vcFzCa5gdEPgWq+t/4v0V63oE1uF4h0DiFJ7HnSWMppDdh1dxtsPvJ2wcBNAKbsJXa0Ck5opdaBPsRNu/usba09i1KsaAVzmLt3sghrRjuK1Tf4xkegInxwy8gKf7dKMVH2QRsV5zXR/Cftyu+aKaKbbkQrsdH+PTzLzcqzkOQAVzM+7FHdiqqe2/YT4zF/t8S/sPmawyvC974vcAAAAASUVORK5CYII="},
+pan:{image:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAJVSURBVFiFvZe7a1RBGMV/x2hWI4JpfKCIiSBKOoOCkID/wP4BFqIIFkE02ChIiC8QDKlSiI3YqRBsBVGwUNAUdiIEUgjiAzQIIsuKJsfizsXr5t7d+8jmwLDfzHz3nLOzc7+ZxTZlGyDgZiWOCuJ9wH2gCUyuqQFgF/AGcKJNrYkBYBj40CIet+muGQi/96kM4WS7C/Tm5VUg7whJg8BkEGkCR4BDYfodsADUgP6wErO5iCtswsuJb32hdbXy8qzL5TIdmzJinHdZoZIBZcSFkGlAKs1Z3YCketZcBtouuaQNkrblMiBpBrhme7mAgU4wMCvpcFsDkq4C54DFVRTH9h+i6vlE0r5UA5ImgCuh28jB28iIs7BIVCOeStoZD64P4uPAjUTygKSx2FsK2TIwkugfk9Qkfd/E+yMWHQCeSRqx/R3gOp3LazfaS2C4B5gHDgD7U9x3E3uAH7KNpC3AHHAwTL4FHgM9GQ8vAaPA0dB/Abxqk2/gBLA9MXba9r1k/d4LfA3JtwueBeM58ucS+edXnAW23wP10N3advEi9CXizTnyN4bPS7Zn4sH/dq3t18AY4e1YLYSy3g/csj2VnFshZPuOpOeSKHCodUINuGj7YetE6je1PV9QoNPJ9StNHKodx7nRbiWrGHBGXAi5DUiqtQwtpcWK0Jubt8CltA5MEV1IfwO7+VffPwGfia5m34CT4bXujIIX0Qna1/cGMNqV/wUJE2czxD8CQ4X5Sl7Jz7SILwCDpbjKPBRMHAd+EtX4HWV5Spdc2w8kDQGPbH8py/MXMygM69/FKz4AAAAASUVORK5CYII="},
+zoom:{image:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK6wAACusBgosNWgAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAMqSURBVFiFvdfbj91TFMDxz57U6GUEMS1aYzyMtCSSDhWjCZMInpAI3khE/QHtgzdRkXgSCS8SES9epKLi0oRKNETjRahREq2KS1stdRujtDPtbA97n5zdn9+5zJxTK9k5v3POXmt991p7r71+IcaoGwkhTOIebMRqzOBTvIG3Y4zTXRmqSoyx5cAKbMJOHMFJnMZ8/jyFaXyMR7G6nb1aH22cP4BvcBxziG3GKfyTIR9D6BYg1KUghPBCDveFlb/24Av8iuUYw41YVsz5G7uxKcZ4aMEpwGt5NY3V/YbHsQ6rcAHOw/kYxigewr5CZw4fYGxBKcCLOFEYehXrMdRhr5yLETxVScsOLOkKAPfn1TYMPIvLFrShUlS2FDZm8XRHACzFAWl3R2xbqPMCYhmeLCAOYEMngAczbcTvuHYxzguIy/FesR9e6gSwU/OoPYHBHgHgviIKX2Flq7k34KhmcVnbi/PC8JX4MgMcxb118wZwdz5aISscqx7VRcox7MrPQ7i+btIAJrAkf9+bI9EPmZY2IAxiTSuAldLq4Y9+AcSUh78KP0tbAcwU35cXMD1JCIFUoGiehlqAz6TNB1f1C0DK+0h+nsNPrQC2a4bqGmlD9kOGcWt+Po6pVgDvSxfJaSkFd4UQBvoAsBYbCoB3a2flM7slA0R8iyt6rAFDeDPbm8eOTpVwGD9qVq7nLbIaZnmksPU1JtsCZMXNmpdRxFasWITzh6Xj3LCzra1OxcD2QjHiGVzdpfORnMqZio2PcF23ABdJF1Np4BPptlyPi6WzPYBzpJZtHe7A6xW9cnyP8TqA//SEIYRL8Bxul7rihvwgtVn78WcGGZXa9HGd5TDujDHuOePXNiHdKjWgZX/YbsxLx/ktqbjVzTlcjUSnvI5JrdlUVp6WesZZ6R1hRrpq9+EVTGS9jTjYAuKIouGpbcurEkIYxC051KNSamazsc+xK8b4S0VnEi/j0hqTP+M27O258egQwZuzs7pI7Mf4WQXIEDc5s9sux+5+1Py2EmP8UOq6GvWhIScxfdYjUERiAt9Jd84J6a16zf8JEKT3yCm8g1UxRv8CC4pyRhzR1uUAAAAASUVORK5CYII="},
+menu:{image:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAgCAYAAAAbifjMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK6wAACusBgosNWgAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDcvMTUvMTTPsvU0AAAAP0lEQVRIie2SMQoAIBDDUvH/X667g8sJJ9KOhYYOkW0qGaU1MPdC0vGSbV19EACo3YMPAFH5BUBUjsqfAPpVXtNgGDfxEDCtAAAAAElFTkSuQmCC"}};L.prototype.setOptions=function(a,b){if(ha[this._defaultsKey]){var c=ha[this._defaultsKey],d;for(d in c)this[d]=a&&d in a?a[d]:b&&d in b?b[d]:c[d]}};L.prototype.updateOption=
+function(a){var b=ha[this._defaultsKey],c=this._options.theme?this._options.theme:this.chart&&this.chart._options.theme?this.chart._options.theme:"theme1",d={},e=this[a];c&&(W[c]&&W[c][this._defaultsKey])&&(d=W[c][this._defaultsKey]);a in b&&(e=a in this._options?this._options[a]:d&&a in d?d[a]:b[a]);if(e===this[a])return!1;this[a]=e;return!0};L.prototype.trackChanges=function(a){this._options._oldOptions||(this._options._oldOptions={});this._options._oldOptions[a]=this._options[a]};L.prototype.isBeingTracked=
+function(a){this._options._oldOptions||(this._options._oldOptions={});return this._options._oldOptions[a]?!0:!1};L.prototype.hasOptionChanged=function(a){this._options._oldOptions||(this._options._oldOptions={});return this._options._oldOptions[a]!==this._options[a]};O(v,L);v.prototype._updateOptions=function(){var a=this;this.updateOption("width");this.updateOption("height");this.updateOption("theme");this.updateOption("colorSet")&&(this._selectedColorSet="undefined"!==typeof V[this.colorSet]?V[this.colorSet]:
+V.colorSet1);this.updateOption("backgroundColor");this.backgroundColor||(this.backgroundColor="rgba(0,0,0,0)");this.updateOption("culture");this._cultureInfo=new xa(this,this._options.culture);this.updateOption("animationEnabled");this.animationEnabled=this.animationEnabled&&t;this._options.zoomEnabled?(this._zoomButton||(S(this._zoomButton=document.createElement("button")),M(this,this._zoomButton,"pan"),this._toolBar.appendChild(this._zoomButton),E(this._zoomButton,"click",function(){a.zoomEnabled?
+(a.zoomEnabled=!1,a.panEnabled=!0,M(a,a._zoomButton,"zoom")):(a.zoomEnabled=!0,a.panEnabled=!1,M(a,a._zoomButton,"pan"));a.render()})),this._resetButton||(S(this._resetButton=document.createElement("button")),M(this,this._resetButton,"reset"),this._toolBar.appendChild(this._resetButton),E(this._resetButton,"click",function(){a._toolTip.hide();a.zoomEnabled||a.panEnabled?(a.zoomEnabled=!0,a.panEnabled=!1,M(a,a._zoomButton,"pan"),a._defaultCursor="default",a.overlaidCanvas.style.cursor=a._defaultCursor):
+(a.zoomEnabled=!1,a.panEnabled=!1);a.sessionVariables.axisX.internalMinimum=a._options.axisX&&a._options.axisX.minimum?a._options.axisX.minimum:null;a.sessionVariables.axisX.internalMaximum=a._options.axisX&&a._options.axisX.maximum?a._options.axisX.maximum:null;a.resetOverlayedCanvas();S(a._zoomButton,a._resetButton);a.render()}),this.overlaidCanvas.style.cursor=a._defaultCursor),this.zoomEnabled||this.panEnabled||(this._zoomButton?(a._zoomButton.getAttribute("state")===a._cultureInfo.zoomText?(this.panEnabled=
+!0,this.zoomEnabled=!1):(this.zoomEnabled=!0,this.panEnabled=!1),ka(a._zoomButton,a._resetButton)):(this.zoomEnabled=!0,this.panEnabled=!1))):this.panEnabled=this.zoomEnabled=!1;"undefined"!==typeof this._options.exportFileName&&(this.exportFileName=this._options.exportFileName);"undefined"!==typeof this._options.exportEnabled&&(this.exportEnabled=this._options.exportEnabled);this._menuButton?this.exportEnabled?ka(this._menuButton):S(this._menuButton):this.exportEnabled&&t&&(this._menuButton=document.createElement("button"),
+M(this,this._menuButton,"menu"),this._toolBar.appendChild(this._menuButton),E(this._menuButton,"click",function(){"none"!==a._dropdownMenu.style.display||a._dropDownCloseTime&&500>=(new Date).getTime()-a._dropDownCloseTime.getTime()||(a._dropdownMenu.style.display="block",a._menuButton.blur(),a._dropdownMenu.focus())},!0));if(!this._dropdownMenu&&this.exportEnabled&&t){this._dropdownMenu=document.createElement("div");this._dropdownMenu.setAttribute("tabindex",-1);this._dropdownMenu.style.cssText=
+"position: absolute; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; cursor: pointer;right: 1px;top: 25px;min-width: 120px;outline: 0;border: 1px solid silver;font-size: 14px;font-family: Calibri, Verdana, sans-serif;padding: 5px 0px 5px 0px;text-align: left;background-color: #fff;line-height: 20px;box-shadow: 2px 2px 10px #888888;";a._dropdownMenu.style.display="none";this._toolBar.appendChild(this._dropdownMenu);E(this._dropdownMenu,"blur",function(){S(a._dropdownMenu);
+a._dropDownCloseTime=new Date},!0);var b=document.createElement("div");b.style.cssText="padding: 2px 15px 2px 10px";b.innerHTML=this._cultureInfo.saveJPGText;this._dropdownMenu.appendChild(b);E(b,"mouseover",function(){this.style.backgroundColor="#EEEEEE"},!0);E(b,"mouseout",function(){this.style.backgroundColor="transparent"},!0);E(b,"click",function(){wa(a.canvas,"jpg",a.exportFileName);S(a._dropdownMenu)},!0);b=document.createElement("div");b.style.cssText="padding: 2px 15px 2px 10px";b.innerHTML=
+this._cultureInfo.savePNGText;this._dropdownMenu.appendChild(b);E(b,"mouseover",function(){this.style.backgroundColor="#EEEEEE"},!0);E(b,"mouseout",function(){this.style.backgroundColor="transparent"},!0);E(b,"click",function(){wa(a.canvas,"png",a.exportFileName);S(a._dropdownMenu)},!0)}"none"!==this._toolBar.style.display&&this._zoomButton&&(this.panEnabled?M(a,a._zoomButton,"zoom"):M(a,a._zoomButton,"pan"),a._resetButton.getAttribute("state")!==a._cultureInfo.resetText&&M(a,a._resetButton,"reset"));
+if("undefined"===typeof ha.Chart.creditHref)this.creditHref="http://canvasjs.com/",this.creditText="CanvasJS.com";else var c=this.updateOption("creditText"),d=this.updateOption("creditHref");if(0===this.renderCount||c||d)this._creditLink.setAttribute("href",this.creditHref),this._creditLink.innerHTML=this.creditText;this.creditHref&&this.creditText?this._creditLink.parentElement||this._canvasJSContainer.appendChild(this._creditLink):this._creditLink.parentElement&&this._canvasJSContainer.removeChild(this._creditLink);
+this._options.toolTip&&this._toolTip._options!==this._options.toolTip&&(this._toolTip._options=this._options.toolTip);this._toolTip.updateOption("enabled");this._toolTip.updateOption("shared");this._toolTip.updateOption("animationEnabled");this._toolTip.updateOption("borderColor");this._toolTip.updateOption("content")};v.prototype._updateSize=function(){var a=0,b=0;this._options.width?a=this.width:this.width=a=0<this._container.clientWidth?this._container.clientWidth:this.width;this._options.height?
+b=this.height:this.height=b=0<this._container.clientHeight?this._container.clientHeight:this.height;return this.canvas.width!==a*H||this.canvas.height!==b*H?(da(this.canvas,a,b),da(this.overlaidCanvas,a,b),da(this._eventManager.ghostCanvas,a,b),!0):!1};v.prototype._initialize=function(){this._animator?this._animator.cancelAllAnimations():this._animator=new oa(this);this.disableToolTip=!1;this.pieDoughnutClickHandler=null;this.animationRequestId&&this.cancelRequestAnimFrame.call(window,this.animationRequestId);
+this._updateOptions();this.animatedRender=t&&this.animationEnabled&&0===this.renderCount;this._updateSize();this.clearCanvas();this.ctx.beginPath();this.axisY2=this.axisY=this.axisX=null;this._indexLabels=[];this._dataInRenderedOrder=[];this._events=[];this._eventManager&&this._eventManager.reset();this.plotInfo={axisPlacement:null,axisXValueType:null,plotTypes:[]};this.layoutManager.reset();this.data=[];for(var a=0,b=0;b<this._options.data.length;b++)if(a++,!this._options.data[b].type||0<=v._supportedChartTypes.indexOf(this._options.data[b].type)){var c=
+new P(this,this._options.data[b],this.theme,a-1,++this._eventManager.lastObjectId);null===c.name&&(c.name="DataSeries "+a);null===c.color?1<this._options.data.length?(c._colorSet=[this._selectedColorSet[c.index%this._selectedColorSet.length]],c.color=this._selectedColorSet[c.index%this._selectedColorSet.length]):c._colorSet="line"===c.type||"stepLine"===c.type||"spline"===c.type||"area"===c.type||"stepArea"===c.type||"splineArea"===c.type||"stackedArea"===c.type||"stackedArea100"===c.type||"rangeArea"===
+c.type||"rangeSplineArea"===c.type||"candlestick"===c.type||"ohlc"===c.type?[this._selectedColorSet[0]]:this._selectedColorSet:c._colorSet=[c.color];null===c.markerSize&&(("line"===c.type||"stepLine"===c.type||"spline"===c.type)&&c.dataPoints&&c.dataPoints.length<this.width/16||"scatter"===c.type)&&(c.markerSize=8);"bubble"!==c.type&&"scatter"!==c.type||!c.dataPoints||c.dataPoints.sort(Ca);this.data.push(c);var d=c.axisPlacement,e;"normal"===d?"xySwapped"===this.plotInfo.axisPlacement?e='You cannot combine "'+
+c.type+'" with bar chart':"none"===this.plotInfo.axisPlacement?e='You cannot combine "'+c.type+'" with pie chart':null===this.plotInfo.axisPlacement&&(this.plotInfo.axisPlacement="normal"):"xySwapped"===d?"normal"===this.plotInfo.axisPlacement?e='You cannot combine "'+c.type+'" with line, area, column or pie chart':"none"===this.plotInfo.axisPlacement?e='You cannot combine "'+c.type+'" with pie chart':null===this.plotInfo.axisPlacement&&(this.plotInfo.axisPlacement="xySwapped"):"none"==d&&("normal"===
+this.plotInfo.axisPlacement?e='You cannot combine "'+c.type+'" with line, area, column or bar chart':"xySwapped"===this.plotInfo.axisPlacement?e='You cannot combine "'+c.type+'" with bar chart':null===this.plotInfo.axisPlacement&&(this.plotInfo.axisPlacement="none"));if(e&&window.console){window.console.log(e);return}}this._objectsInitialized=!0};v._supportedChartTypes="line stepLine spline column area stepArea splineArea bar bubble scatter stackedColumn stackedColumn100 stackedBar stackedBar100 stackedArea stackedArea100 candlestick ohlc rangeColumn rangeBar rangeArea rangeSplineArea pie doughnut funnel".split(" ");
+v._supportedChartTypes.indexOf||(v._supportedChartTypes.indexOf=function(a,b){var c=this.length>>>0,d=Number(b)||0,d=0>d?Math.ceil(d):Math.floor(d);for(0>d&&(d+=c);d<c;d++)if(d in this&&this[d]===a)return d;return-1});v.prototype.render=function(a){a&&(this._options=a);this._initialize();for(a=0;a<this.data.length;a++)if("normal"===this.plotInfo.axisPlacement||"xySwapped"===this.plotInfo.axisPlacement)this.data[a].axisYType&&"primary"!==this.data[a].axisYType?"secondary"===this.data[a].axisYType&&
+(this.axisY2||("normal"===this.plotInfo.axisPlacement?this.axisY2=new A(this,this._options.axisY2,"axisY","right"):"xySwapped"===this.plotInfo.axisPlacement&&(this.axisY2=new A(this,this._options.axisY2,"axisY","top"))),this.data[a].axisY=this.axisY2):(this.axisY||("normal"===this.plotInfo.axisPlacement?this.axisY=new A(this,this._options.axisY,"axisY","left"):"xySwapped"===this.plotInfo.axisPlacement&&(this.axisY=new A(this,this._options.axisY,"axisY","bottom"))),this.data[a].axisY=this.axisY),this.axisX||
+("normal"===this.plotInfo.axisPlacement?this.axisX=new A(this,this._options.axisX,"axisX","bottom"):"xySwapped"===this.plotInfo.axisPlacement&&(this.axisX=new A(this,this._options.axisX,"axisX","left"))),this.data[a].axisX=this.axisX;this._processData();this._options.title&&(this._title=new ba(this,this._options.title),this._title.render());this.legend=new ga(this,this._options.legend,this.theme);for(a=0;a<this.data.length;a++)this.data[a].showInLegend&&this.legend.dataSeries.push(this.data[a]);this.legend.render();
+if("normal"===this.plotInfo.axisPlacement||"xySwapped"===this.plotInfo.axisPlacement)this.layoutManager.getFreeSpace(),A.setLayoutAndRender(this.axisX,this.axisY,this.axisY2,this.plotInfo.axisPlacement,this.layoutManager.getFreeSpace());else if("none"===this.plotInfo.axisPlacement)this.preparePlotArea();else return;var b=[];if(this.animatedRender){var c=U(this.width,this.height);c.getContext("2d").drawImage(this.canvas,0,0,this.width,this.height)}for(a=0;a<this.plotInfo.plotTypes.length;a++)for(var d=
+this.plotInfo.plotTypes[a],e=0;e<d.plotUnits.length;e++){var f=d.plotUnits[e],g=null;f.targetCanvas=null;this.animatedRender&&(f.targetCanvas=U(this.width,this.height),f.targetCanvasCtx=f.targetCanvas.getContext("2d"));"line"===f.type?g=this.renderLine(f):"stepLine"===f.type?g=this.renderStepLine(f):"spline"===f.type?g=this.renderSpline(f):"column"===f.type?g=this.renderColumn(f):"bar"===f.type?g=this.renderBar(f):"area"===f.type?g=this.renderArea(f):"stepArea"===f.type?g=this.renderStepArea(f):"splineArea"===
+f.type?g=this.renderSplineArea(f):"stackedColumn"===f.type?g=this.renderStackedColumn(f):"stackedColumn100"===f.type?g=this.renderStackedColumn100(f):"stackedBar"===f.type?g=this.renderStackedBar(f):"stackedBar100"===f.type?g=this.renderStackedBar100(f):"stackedArea"===f.type?g=this.renderStackedArea(f):"stackedArea100"===f.type?g=this.renderStackedArea100(f):"bubble"===f.type?g=g=this.renderBubble(f):"scatter"===f.type?g=this.renderScatter(f):"pie"===f.type?this.renderPie(f):"doughnut"===f.type?
+this.renderPie(f):"candlestick"===f.type?g=this.renderCandlestick(f):"ohlc"===f.type?g=this.renderCandlestick(f):"rangeColumn"===f.type?g=this.renderRangeColumn(f):"rangeBar"===f.type?g=this.renderRangeBar(f):"rangeArea"===f.type?g=this.renderRangeArea(f):"rangeSplineArea"===f.type&&(g=this.renderRangeSplineArea(f));for(var k=0;k<f.dataSeriesIndexes.length;k++)this._dataInRenderedOrder.push(this.data[f.dataSeriesIndexes[k]]);this.animatedRender&&g&&b.push(g)}this.animatedRender&&0<this._indexLabels.length&&
+(a=U(this.width,this.height).getContext("2d"),b.push(this.renderIndexLabels(a)));var p=this;0<b.length?(p.disableToolTip=!0,p._animator.animate(200,p.animationDuration,function(a){p.ctx.clearRect(0,0,p.width,p.height);p.ctx.drawImage(c,0,0,p.width*H,p.height*H,0,0,p.width,p.height);for(var d=0;d<b.length;d++)g=b[d],1>a&&"undefined"!==typeof g.startTimePercent?a>=g.startTimePercent&&g.animationCallback(g.easingFunction(a-g.startTimePercent,0,1,1-g.startTimePercent),g):g.animationCallback(g.easingFunction(a,
+0,1,1),g)},function(){b=[];for(var a=0;a<p.plotInfo.plotTypes.length;a++)for(var d=p.plotInfo.plotTypes[a],e=0;e<d.plotUnits.length;e++)d.plotUnits[e].targetCanvas=null;c=null;p.disableToolTip=!1})):0<p._indexLabels.length&&p.renderIndexLabels();this.attachPlotAreaEventHandlers();this.zoomEnabled||(this.panEnabled||!this._zoomButton||"none"===this._zoomButton.style.display)||S(this._zoomButton,this._resetButton);this._toolTip._updateToolTip();this.renderCount++};v.prototype.attachPlotAreaEventHandlers=
+function(){this.attachEvent({context:this,chart:this,mousedown:this._plotAreaMouseDown,mouseup:this._plotAreaMouseUp,mousemove:this._plotAreaMouseMove,cursor:this.zoomEnabled?"col-resize":"move",cursor:this.panEnabled?"move":"default",capture:!0,bounds:this.plotArea})};v.prototype.categoriseDataSeries=function(){for(var a="",b=0;b<this.data.length;b++)if(a=this.data[b],a.dataPoints&&(0!==a.dataPoints.length&&a.visible)&&0<=v._supportedChartTypes.indexOf(a.type)){for(var c=null,d=!1,e=null,f=!1,g=
+0;g<this.plotInfo.plotTypes.length;g++)if(this.plotInfo.plotTypes[g].type===a.type){d=!0;c=this.plotInfo.plotTypes[g];break}d||(c={type:a.type,totalDataSeries:0,plotUnits:[]},this.plotInfo.plotTypes.push(c));for(g=0;g<c.plotUnits.length;g++)if(c.plotUnits[g].axisYType===a.axisYType){f=!0;e=c.plotUnits[g];break}f||(e={type:a.type,previousDataSeriesCount:0,index:c.plotUnits.length,plotType:c,axisYType:a.axisYType,axisY:"primary"===a.axisYType?this.axisY:this.axisY2,axisX:this.axisX,dataSeriesIndexes:[],
+yTotals:[]},c.plotUnits.push(e));c.totalDataSeries++;e.dataSeriesIndexes.push(b);a.plotUnit=e}for(b=0;b<this.plotInfo.plotTypes.length;b++)for(c=this.plotInfo.plotTypes[b],g=a=0;g<c.plotUnits.length;g++)c.plotUnits[g].previousDataSeriesCount=a,a+=c.plotUnits[g].dataSeriesIndexes.length};v.prototype.assignIdToDataPoints=function(){for(var a=0;a<this.data.length;a++){var b=this.data[a];if(b.dataPoints)for(var c=b.dataPoints.length,d=0;d<c;d++)b.dataPointIds[d]=++this._eventManager.lastObjectId}};v.prototype._processData=
+function(){this.assignIdToDataPoints();this.categoriseDataSeries();for(var a=0;a<this.plotInfo.plotTypes.length;a++)for(var b=this.plotInfo.plotTypes[a],c=0;c<b.plotUnits.length;c++){var d=b.plotUnits[c];"line"===d.type||"stepLine"===d.type||"spline"===d.type||"column"===d.type||"area"===d.type||"stepArea"===d.type||"splineArea"===d.type||"bar"===d.type||"bubble"===d.type||"scatter"===d.type?this._processMultiseriesPlotUnit(d):"stackedColumn"===d.type||"stackedBar"===d.type||"stackedArea"===d.type?
+this._processStackedPlotUnit(d):"stackedColumn100"===d.type||"stackedBar100"===d.type||"stackedArea100"===d.type?this._processStacked100PlotUnit(d):"candlestick"!==d.type&&"ohlc"!==d.type&&"rangeColumn"!==d.type&&"rangeBar"!==d.type&&"rangeArea"!==d.type&&"rangeSplineArea"!==d.type||this._processMultiYPlotUnit(d)}};v.prototype._processMultiseriesPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var b=a.axisY.dataInfo,c=a.axisX.dataInfo,d,e,f=!1,g=0;g<a.dataSeriesIndexes.length;g++){var k=
+this.data[a.dataSeriesIndexes[g]],p=0,h=!1,l=!1;if("normal"===k.axisPlacement||"xySwapped"===k.axisPlacement)var r=this.sessionVariables.axisX.internalMinimum?this.sessionVariables.axisX.internalMinimum:this._options.axisX&&this._options.axisX.minimum?this._options.axisX.minimum:-Infinity,m=this.sessionVariables.axisX.internalMaximum?this.sessionVariables.axisX.internalMaximum:this._options.axisX&&this._options.axisX.maximum?this._options.axisX.maximum:Infinity;if(k.dataPoints[p].x&&k.dataPoints[p].x.getTime||
+"dateTime"===k.xValueType)f=!0;for(p=0;p<k.dataPoints.length;p++){"undefined"===typeof k.dataPoints[p].x&&(k.dataPoints[p].x=p);k.dataPoints[p].x.getTime?(f=!0,d=k.dataPoints[p].x.getTime()):d=k.dataPoints[p].x;e=k.dataPoints[p].y;d<c.min&&(c.min=d);d>c.max&&(c.max=d);e<b.min&&(b.min=e);e>b.max&&(b.max=e);if(0<p){var q=d-k.dataPoints[p-1].x;0>q&&(q*=-1);c.minDiff>q&&0!==q&&(c.minDiff=q)}if(!(d<r)||h){if(!h&&(h=!0,0<p)){p-=2;continue}if(d>m&&!l)l=!0;else if(d>m&&l)continue;k.dataPoints[p].label&&(a.axisX.labels[d]=
+k.dataPoints[p].label);d<c.viewPortMin&&(c.viewPortMin=d);d>c.viewPortMax&&(c.viewPortMax=d);null!==e&&(e<b.viewPortMin&&(b.viewPortMin=e),e>b.viewPortMax&&(b.viewPortMax=e))}}this.plotInfo.axisXValueType=k.xValueType=f?"dateTime":"number"}};v.prototype._processStackedPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var b=a.axisY.dataInfo,c=a.axisX.dataInfo,d,e,f=!1,g=[],k=[],p=0;p<a.dataSeriesIndexes.length;p++){var h=this.data[a.dataSeriesIndexes[p]],l=0,r=!1,m=
+!1;if("normal"===h.axisPlacement||"xySwapped"===h.axisPlacement)var q=this.sessionVariables.axisX.internalMinimum?this.sessionVariables.axisX.internalMinimum:this._options.axisX&&this._options.axisX.minimum?this._options.axisX.minimum:-Infinity,n=this.sessionVariables.axisX.internalMaximum?this.sessionVariables.axisX.internalMaximum:this._options.axisX&&this._options.axisX.maximum?this._options.axisX.maximum:Infinity;if(h.dataPoints[l].x&&h.dataPoints[l].x.getTime||"dateTime"===h.xValueType)f=!0;
+for(l=0;l<h.dataPoints.length;l++){"undefined"===typeof h.dataPoints[l].x&&(h.dataPoints[l].x=l);h.dataPoints[l].x.getTime?(f=!0,d=h.dataPoints[l].x.getTime()):d=h.dataPoints[l].x;e=h.dataPoints[l].y;d<c.min&&(c.min=d);d>c.max&&(c.max=d);if(0<l){var s=d-h.dataPoints[l-1].x;0>s&&(s*=-1);c.minDiff>s&&0!==s&&(c.minDiff=s)}if(!(d<q)||r){if(!r&&(r=!0,0<l)){l-=2;continue}if(d>n&&!m)m=!0;else if(d>n&&m)continue;h.dataPoints[l].label&&(a.axisX.labels[d]=h.dataPoints[l].label);d<c.viewPortMin&&(c.viewPortMin=
+d);d>c.viewPortMax&&(c.viewPortMax=d);null!==e&&(a.yTotals[d]=(a.yTotals[d]?a.yTotals[d]:0)+Math.abs(e),0<=e?g[d]=g[d]?g[d]+e:e:k[d]=k[d]?k[d]+e:e)}}this.plotInfo.axisXValueType=h.xValueType=f?"dateTime":"number"}for(l in g)isNaN(l)||(a=g[l],a<b.min&&(b.min=a),a>b.max&&(b.max=a),l<c.viewPortMin||l>c.viewPortMax||(a<b.viewPortMin&&(b.viewPortMin=a),a>b.viewPortMax&&(b.viewPortMax=a)));for(l in k)isNaN(l)||(a=k[l],a<b.min&&(b.min=a),a>b.max&&(b.max=a),l<c.viewPortMin||l>c.viewPortMax||(a<b.viewPortMin&&
+(b.viewPortMin=a),a>b.viewPortMax&&(b.viewPortMax=a)))}};v.prototype._processStacked100PlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var b=a.axisY.dataInfo,c=a.axisX.dataInfo,d,e,f=!1,g=!1,k=!1,p=[],h=0;h<a.dataSeriesIndexes.length;h++){var l=this.data[a.dataSeriesIndexes[h]],r=0,m=!1,q=!1;if("normal"===l.axisPlacement||"xySwapped"===l.axisPlacement)var n=this.sessionVariables.axisX.internalMinimum?this.sessionVariables.axisX.internalMinimum:this._options.axisX&&
+this._options.axisX.minimum?this._options.axisX.minimum:-Infinity,s=this.sessionVariables.axisX.internalMaximum?this.sessionVariables.axisX.internalMaximum:this._options.axisX&&this._options.axisX.maximum?this._options.axisX.maximum:Infinity;if(l.dataPoints[r].x&&l.dataPoints[r].x.getTime||"dateTime"===l.xValueType)f=!0;for(r=0;r<l.dataPoints.length;r++){"undefined"===typeof l.dataPoints[r].x&&(l.dataPoints[r].x=r);l.dataPoints[r].x.getTime?(f=!0,d=l.dataPoints[r].x.getTime()):d=l.dataPoints[r].x;
+e=l.dataPoints[r].y;d<c.min&&(c.min=d);d>c.max&&(c.max=d);if(0<r){var t=d-l.dataPoints[r-1].x;0>t&&(t*=-1);c.minDiff>t&&0!==t&&(c.minDiff=t)}if(!(d<n)||m){if(!m&&(m=!0,0<r)){r-=2;continue}if(d>s&&!q)q=!0;else if(d>s&&q)continue;l.dataPoints[r].label&&(a.axisX.labels[d]=l.dataPoints[r].label);d<c.viewPortMin&&(c.viewPortMin=d);d>c.viewPortMax&&(c.viewPortMax=d);null!==e&&(a.yTotals[d]=(a.yTotals[d]?a.yTotals[d]:0)+Math.abs(e),0<=e?g=!0:k=!0,p[d]=p[d]?p[d]+Math.abs(e):Math.abs(e))}}this.plotInfo.axisXValueType=
+l.xValueType=f?"dateTime":"number"}g&&!k?(b.max=99,b.min=1):g&&k?(b.max=99,b.min=-99):!g&&k&&(b.max=-1,b.min=-99);b.viewPortMin=b.min;b.viewPortMax=b.max;a.dataPointYSums=p}};v.prototype._processMultiYPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var b=a.axisY.dataInfo,c=a.axisX.dataInfo,d,e,f,g,k=!1,p=0;p<a.dataSeriesIndexes.length;p++){var h=this.data[a.dataSeriesIndexes[p]],l=0,r=!1,m=!1;if("normal"===h.axisPlacement||"xySwapped"===h.axisPlacement)var q=this.sessionVariables.axisX.internalMinimum?
+this.sessionVariables.axisX.internalMinimum:this._options.axisX&&this._options.axisX.minimum?this._options.axisX.minimum:-Infinity,n=this.sessionVariables.axisX.internalMaximum?this.sessionVariables.axisX.internalMaximum:this._options.axisX&&this._options.axisX.maximum?this._options.axisX.maximum:Infinity;if(h.dataPoints[l].x&&h.dataPoints[l].x.getTime||"dateTime"===h.xValueType)k=!0;for(l=0;l<h.dataPoints.length;l++){"undefined"===typeof h.dataPoints[l].x&&(h.dataPoints[l].x=l);h.dataPoints[l].x.getTime?
+(k=!0,d=h.dataPoints[l].x.getTime()):d=h.dataPoints[l].x;(e=h.dataPoints[l].y)&&e.length&&(f=Math.min.apply(null,e),g=Math.max.apply(null,e));d<c.min&&(c.min=d);d>c.max&&(c.max=d);f<b.min&&(b.min=f);g>b.max&&(b.max=g);if(0<l){var s=d-h.dataPoints[l-1].x;0>s&&(s*=-1);c.minDiff>s&&0!==s&&(c.minDiff=s)}if(!(d<q)||r){if(!r&&(r=!0,0<l)){l-=2;continue}if(d>n&&!m)m=!0;else if(d>n&&m)continue;h.dataPoints[l].label&&(a.axisX.labels[d]=h.dataPoints[l].label);d<c.viewPortMin&&(c.viewPortMin=d);d>c.viewPortMax&&
+(c.viewPortMax=d);null!==e&&(f<b.viewPortMin&&(b.viewPortMin=f),g>b.viewPortMax&&(b.viewPortMax=g))}}this.plotInfo.axisXValueType=h.xValueType=k?"dateTime":"number"}};v.prototype.getDataPointAtXY=function(a,b,c){c=c||!1;for(var d=[],e=this._dataInRenderedOrder.length-1;0<=e;e--){var f=null;(f=this._dataInRenderedOrder[e].getDataPointAtXY(a,b,c))&&d.push(f)}a=null;b=!1;for(c=0;c<d.length;c++)if("line"===d[c].dataSeries.type||"stepLine"===d[c].dataSeries.type||"area"===d[c].dataSeries.type||"stepArea"===
+d[c].dataSeries.type)if(e=T("markerSize",d[c].dataPoint,d[c].dataSeries)||8,d[c].distance<=e/2){b=!0;break}for(c=0;c<d.length;c++)b&&"line"!==d[c].dataSeries.type&&"stepLine"!==d[c].dataSeries.type&&"area"!==d[c].dataSeries.type&&"stepArea"!==d[c].dataSeries.type||(a?d[c].distance<=a.distance&&(a=d[c]):a=d[c]);return a};v.prototype.getObjectAtXY=function(a,b,c){var d=null;if(c=this.getDataPointAtXY(a,b,c||!1))d=c.dataSeries.dataPointIds[c.dataPointIndex];else if(t)d=ta(a,b,this._eventManager.ghostCtx);
+else for(c=0;c<this.legend.items.length;c++){var e=this.legend.items[c];a>=e.x1&&(a<=e.x2&&b>=e.y1&&b<=e.y2)&&(d=e.id)}return d};v.prototype.getAutoFontSize=function(a,b,c){a/=400;return Math.round(Math.min(this.width,this.height)*a)};v.prototype.resetOverlayedCanvas=function(){this.overlaidCanvasCtx.clearRect(0,0,this.width,this.height)};v.prototype.clearCanvas=function(){this.ctx.clearRect(0,0,this.width,this.height);this.backgroundColor&&(this.ctx.fillStyle=this.backgroundColor,this.ctx.fillRect(0,
+0,this.width,this.height))};v.prototype.attachEvent=function(a){this._events.push(a)};v.prototype._touchEventHandler=function(a){if(a.changedTouches&&this.interactivityEnabled){var b=[],c=a.changedTouches,d=c?c[0]:a,e=null;switch(a.type){case "touchstart":case "MSPointerDown":b=["mousemove","mousedown"];this._lastTouchData=ia(d);this._lastTouchData.time=new Date;break;case "touchmove":case "MSPointerMove":b=["mousemove"];break;case "touchend":case "MSPointerUp":b="touchstart"===this._lastTouchEventType||
+"MSPointerDown"===this._lastTouchEventType?["mouseup","click"]:["mouseup"];break;default:return}if(!(c&&1<c.length)){e=ia(d);e.time=new Date;try{var f=e.y-this._lastTouchData.y,g=e.time-this._lastTouchData.time;if(15<Math.abs(f)&&(this._lastTouchData.scroll||200>g)){this._lastTouchData.scroll=!0;var k=window.parent||window;k&&k.scrollBy&&k.scrollBy(0,-f)}}catch(p){}this._lastTouchEventType=a.type;if(this._lastTouchData.scroll&&this.zoomEnabled)this.isDrag&&this.resetOverlayedCanvas(),this.isDrag=
+!1;else for(c=0;c<b.length;c++)e=b[c],f=document.createEvent("MouseEvent"),f.initMouseEvent(e,!0,!0,window,1,d.screenX,d.screenY,d.clientX,d.clientY,!1,!1,!1,!1,0,null),d.target.dispatchEvent(f),a.preventManipulation&&a.preventManipulation(),a.preventDefault&&a.preventDefault()}}};v.prototype._mouseEventHandler=function(a){if(this.interactivityEnabled)if(this._ignoreNextEvent)this._ignoreNextEvent=!1;else{a.preventManipulation&&a.preventManipulation();a.preventDefault&&a.preventDefault();"undefined"===
+typeof a.target&&a.srcElement&&(a.target=a.srcElement);var b=ia(a),c=a.type,d,e;a.which?e=3==a.which:a.button&&(e=2==a.button);if(!e){if(v.capturedEventParam)d=v.capturedEventParam,"mouseup"===c&&(v.capturedEventParam=null,d.chart.overlaidCanvas.releaseCapture?d.chart.overlaidCanvas.releaseCapture():document.body.removeEventListener("mouseup",d.chart._mouseEventHandler,!1)),d.hasOwnProperty(c)&&d[c].call(d.context,b.x,b.y);else if(this._events){for(e=0;e<this._events.length;e++)if(this._events[e].hasOwnProperty(c)){d=
+this._events[e];var f=d.bounds;if(b.x>=f.x1&&b.x<=f.x2&&b.y>=f.y1&&b.y<=f.y2){d[c].call(d.context,b.x,b.y);"mousedown"===c&&!0===d.capture?(v.capturedEventParam=d,this.overlaidCanvas.setCapture?this.overlaidCanvas.setCapture():document.body.addEventListener("mouseup",this._mouseEventHandler,!1)):"mouseup"===c&&(d.chart.overlaidCanvas.releaseCapture?d.chart.overlaidCanvas.releaseCapture():document.body.removeEventListener("mouseup",this._mouseEventHandler,!1));break}else d=null}a.target.style.cursor=
+d&&d.cursor?d.cursor:this._defaultCursor}this._toolTip&&this._toolTip.enabled&&(c=this.plotArea,(b.x<c.x1||b.x>c.x2||b.y<c.y1||b.y>c.y2)&&this._toolTip.hide());this.isDrag&&this.zoomEnabled||!this._eventManager||this._eventManager.mouseEventHandler(a)}}};v.prototype._plotAreaMouseDown=function(a,b){this.isDrag=!0;this.dragStartPoint="none"!==this.plotInfo.axisPlacement?{x:a,y:b,xMinimum:this.axisX.minimum,xMaximum:this.axisX.maximum}:{x:a,y:b}};v.prototype._plotAreaMouseUp=function(a,b){var c,d;if(("normal"===
+this.plotInfo.axisPlacement||"xySwapped"===this.plotInfo.axisPlacement)&&this.isDrag){var e=0,e=this.axisX.lineCoordinates,e="xySwapped"===this.plotInfo.axisPlacement?b-this.dragStartPoint.y:this.dragStartPoint.x-a;Math.abs(this.axisX.maximum-this.axisX.minimum);if(2<Math.abs(e)){if(this.panEnabled)e=!1,d=0,this.axisX.sessionVariables.internalMinimum<this.axisX._absoluteMinimum?(d=this.axisX._absoluteMinimum-this.axisX.sessionVariables.internalMinimum,this.axisX.sessionVariables.internalMinimum+=
+d,this.axisX.sessionVariables.internalMaximum+=d,e=!0):this.axisX.sessionVariables.internalMaximum>this.axisX._absoluteMaximum&&(d=this.axisX.sessionVariables.internalMaximum-this.axisX._absoluteMaximum,this.axisX.sessionVariables.internalMaximum-=d,this.axisX.sessionVariables.internalMinimum-=d,e=!0),e&&this.render();else if(this.zoomEnabled){this.resetOverlayedCanvas();if(!this.dragStartPoint)return;"xySwapped"===this.plotInfo.axisPlacement?(c=Math.min(this.dragStartPoint.y,b),d=Math.max(this.dragStartPoint.y,
+b),1<Math.abs(c-d)&&(e=this.axisX.lineCoordinates,d=this.axisX.maximum-(this.axisX.maximum-this.axisX.minimum)/e.height*(d-e.y1),e=this.axisX.maximum-(this.axisX.maximum-this.axisX.minimum)/e.height*(c-e.y1),d=Math.max(d,this.axisX.dataInfo.min),e=Math.min(e,this.axisX.dataInfo.max),Math.abs(e-d)>2*Math.abs(this.axisX.dataInfo.minDiff)&&(this.axisX.sessionVariables.internalMinimum=d,this.axisX.sessionVariables.internalMaximum=e,this.render()))):"normal"===this.plotInfo.axisPlacement&&(d=Math.min(this.dragStartPoint.x,
+a),c=Math.max(this.dragStartPoint.x,a),1<Math.abs(d-c)&&(e=this.axisX.lineCoordinates,d=(this.axisX.maximum-this.axisX.minimum)/e.width*(d-e.x1)+this.axisX.minimum,e=(this.axisX.maximum-this.axisX.minimum)/e.width*(c-e.x1)+this.axisX.minimum,d=Math.max(d,this.axisX.dataInfo.min),e=Math.min(e,this.axisX.dataInfo.max),Math.abs(e-d)>2*Math.abs(this.axisX.dataInfo.minDiff)&&(this.axisX.sessionVariables.internalMinimum=d,this.axisX.sessionVariables.internalMaximum=e,this.render())))}this._ignoreNextEvent=
+!0;this.zoomEnabled&&"none"===this._zoomButton.style.display&&(ka(this._zoomButton,this._resetButton),M(this,this._zoomButton,"pan"),M(this,this._resetButton,"reset"))}}this.isDrag=!1};v.prototype._plotAreaMouseMove=function(a,b){if(this.isDrag&&"none"!==this.plotInfo.axisPlacement){var c=0,d=0,d=this.axisX.lineCoordinates;"xySwapped"===this.plotInfo.axisPlacement?(c=b-this.dragStartPoint.y,d=Math.abs(this.axisX.maximum-this.axisX.minimum)/d.height*c):(c=this.dragStartPoint.x-a,d=Math.abs(this.axisX.maximum-
+this.axisX.minimum)/d.width*c);2<Math.abs(c)&&8>Math.abs(c)&&(this.panEnabled||this.zoomEnabled)?this._toolTip.hide():!this._toolTip.enabled||(this.panEnabled||this.zoomEnabled)||this._toolTip.mouseMoveHandler(a,b);if(2<Math.abs(c)&&(this.panEnabled||this.zoomEnabled))if(this.panEnabled){this.axisX.sessionVariables.internalMinimum=this.dragStartPoint.xMinimum+d;this.axisX.sessionVariables.internalMaximum=this.dragStartPoint.xMaximum+d;c=0;this.axisX.sessionVariables.internalMinimum<this.axisX._absoluteMinimum-
+Y(this.axisX.interval,this.axisX.intervalType)?(c=this.axisX._absoluteMinimum-Y(this.axisX.interval,this.axisX.intervalType)-this.axisX.sessionVariables.internalMinimum,this.axisX.sessionVariables.internalMinimum+=c,this.axisX.sessionVariables.internalMaximum+=c):this.axisX.sessionVariables.internalMaximum>this.axisX._absoluteMaximum+Y(this.axisX.interval,this.axisX.intervalType)&&(c=this.axisX.sessionVariables.internalMaximum-(this.axisX._absoluteMaximum+Y(this.axisX.interval,this.axisX.intervalType)),
+this.axisX.sessionVariables.internalMaximum-=c,this.axisX.sessionVariables.internalMinimum-=c);var e=this;clearTimeout(this._panTimerId);this._panTimerId=setTimeout(function(){e.render()},0)}else this.zoomEnabled&&(c=this.plotArea,this.resetOverlayedCanvas(),d=this.overlaidCanvasCtx.globalAlpha,this.overlaidCanvasCtx.globalAlpha=0.7,this.overlaidCanvasCtx.fillStyle="#A0ABB8","xySwapped"===this.plotInfo.axisPlacement?this.overlaidCanvasCtx.fillRect(c.x1,this.dragStartPoint.y,c.x2-c.x1,b-this.dragStartPoint.y):
+"normal"===this.plotInfo.axisPlacement&&this.overlaidCanvasCtx.fillRect(this.dragStartPoint.x,c.y1,a-this.dragStartPoint.x,c.y2-c.y1),this.overlaidCanvasCtx.globalAlpha=d)}else this._toolTip.enabled&&this._toolTip.mouseMoveHandler(a,b)};v.prototype.preparePlotArea=function(){var a=this.plotArea,b=this.axisY?this.axisY:this.axisY2;!t&&(0<a.x1||0<a.y1)&&a.ctx.translate(a.x1,a.y1);this.axisX&&b?(a.x1=this.axisX.lineCoordinates.x1<this.axisX.lineCoordinates.x2?this.axisX.lineCoordinates.x1:b.lineCoordinates.x1,
+a.y1=this.axisX.lineCoordinates.y1<b.lineCoordinates.y1?this.axisX.lineCoordinates.y1:b.lineCoordinates.y1,a.x2=this.axisX.lineCoordinates.x2>b.lineCoordinates.x2?this.axisX.lineCoordinates.x2:b.lineCoordinates.x2,a.y2=this.axisX.lineCoordinates.y2>this.axisX.lineCoordinates.y1?this.axisX.lineCoordinates.y2:b.lineCoordinates.y2,a.width=a.x2-a.x1,a.height=a.y2-a.y1):(b=this.layoutManager.getFreeSpace(),a.x1=b.x1,a.x2=b.x2,a.y1=b.y1,a.y2=b.y2,a.width=b.width,a.height=b.height);t||(a.canvas.width=a.width,
+a.canvas.height=a.height,a.canvas.style.left=a.x1+"px",a.canvas.style.top=a.y1+"px",(0<a.x1||0<a.y1)&&a.ctx.translate(-a.x1,-a.y1))};v.prototype.getPixelCoordinatesOnPlotArea=function(a,b){return{x:this.axisX.getPixelCoordinatesOnAxis(a).x,y:this.axisY.getPixelCoordinatesOnAxis(b).y}};v.prototype.renderIndexLabels=function(a){a=a||this.plotArea.ctx;a.textBaseline="middle";for(var b=this.plotArea,c=0;c<this._indexLabels.length;c++){var d=this._indexLabels[c],e,f,g;a.fillStyle=T("indexLabelFontColor",
+d.dataPoint,d.dataSeries);a.font=ua("indexLabel",d.dataPoint,d.dataSeries);var k=this.replaceKeywordsWithValue(T("indexLabel",d.dataPoint,d.dataSeries),d.dataPoint,d.dataSeries,null,d.indexKeyword),p=a.measureText(k).width,h=T("indexLabelFontSize",d.dataPoint,d.dataSeries),l=T("indexLabelPlacement",d.dataPoint,d.dataSeries),r=T("indexLabelOrientation",d.dataPoint,d.dataSeries),m=g=0,q=0,n=0,n=m=q=0,s=d.direction,m=d.dataSeries.axisX,n=d.dataSeries.axisY;d.dataPoint.x<m.minimum||(d.dataPoint.x>m.maximum||
+d.dataPoint.y<n.minimum||d.dataPoint.y>n.maximum)||("column"===d.chartType||"stackedColumn"===d.chartType||"stackedColumn100"===d.chartType||"bar"===d.chartType||"stackedBar"===d.chartType||"stackedBar100"===d.chartType||"candlestick"===d.chartType||"ohlc"===d.chartType||"rangeColumn"===d.chartType||"rangeBar"===d.chartType?(m=n=5,Math.abs(d.bounds.x1,d.bounds.x2),Math.abs(d.bounds.y1,d.bounds.y2),"normal"===this.plotInfo.axisPlacement?("inside"!==l?(m=b.y1,q=b.y2):(m=d.bounds.y1,q=d.bounds.y2),"horizontal"===
+r?(e=d.point.x-p/2,f=0<=s?d.point.y-h/2-n<m+h/2?"auto"===l?Math.min(Math.max(d.point.y,m)+h/2+1,q-h/2-n):Math.min(m+h/2+1,q-h/2-n):Math.min(d.point.y-h/2-n+1,q-h/2-n):d.point.y+h/2+n>q-h/2-1?"auto"===l?Math.max(Math.min(d.point.y,q)-h/2-1,m+h/2+n):Math.max(q-h/2-1,m+h/2+n):Math.max(d.point.y+h/2+n,m+h/2+n)):"vertical"===r&&(e=d.point.x,f=0<=s?d.point.y-n<m+p+1?"auto"===l?Math.min(Math.max(d.point.y,m)+p+1,q):Math.min(m+p+1,q):Math.min(d.point.y-n,q-1):d.point.y+p+n>q-1?"auto"===l?Math.max(Math.min(d.point.y,
+q)-n,m):Math.max(q-1,m):Math.max(d.point.y+p+n,m),g=-90)):"xySwapped"===this.plotInfo.axisPlacement&&("inside"!==l?(n=b.x1,q=b.x2):(n=d.bounds.x1,q=d.bounds.x2),"horizontal"===r?(f=d.point.y,e=0<=s?d.point.x+m>q-p?"auto"===l?Math.max(Math.min(d.point.x,q)-p,n):Math.max(q-p,n):Math.max(d.point.x+m,n):d.point.x-p-m<n?"auto"===l?Math.min(Math.max(d.point.x,n)+1,q):Math.min(n+1,q):Math.min(d.point.x-p-m,q)):"vertical"===r&&(f=d.point.y+p/2,e=0<=s?d.point.x+h/2+m>q-h/2?"auto"===l?Math.max(Math.min(d.point.x,
+q)-h/2,n):Math.max(q-h/2,n):Math.max(d.point.x+h/2+m,n):d.point.x-h/2-m<n+h/2?"auto"===l?Math.min(Math.max(d.point.x,n)+h/2,q+h/2):Math.min(n+h/2,q+h/2):Math.min(d.point.x-h/2-m,q+h/2),g=-90))):(n=5,"horizontal"===r?(e=d.point.x-p/2,"bubble"===d.chartType&&(n=-h/2),f=0<s?Math.max(d.point.y-h/2-n,b.y1+h/2):Math.min(d.point.y+h/2+n,b.y2-h/2)):"vertical"===r&&(e=d.point.x,"bubble"===d.chartType&&(n=-p/2),f=0<s?Math.max(d.point.y-n,b.y1+p):Math.min(d.point.y+p+n,b.y2),g=-90)),a.save(),a.translate(e,f),
+a.rotate(Math.PI/180*g),a.fillText(k,0,0),a.restore())}return{source:a,dest:this.plotArea.ctx,animationCallback:y.fadeInAnimation,easingFunction:y.easing.easeInQuad,animationBase:0,startTimePercent:0.7}};v.prototype.renderLine=function(a){var b=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var c=this._eventManager.ghostCtx;b.save();var d=this.plotArea;b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();for(var d=[],e=0;e<a.dataSeriesIndexes.length;e++){var f=a.dataSeriesIndexes[e],
+g=this.data[f];b.lineWidth=g.lineThickness;var k=g.dataPoints,p=g.id;this._eventManager.objectMap[p]={objectType:"dataSeries",dataSeriesIndex:f};p=C(p);c.strokeStyle=p;c.lineWidth=0<g.lineThickness?Math.max(g.lineThickness,4):0;p=g._colorSet[0];b.strokeStyle=p;var h=!0,l=0,r,m;b.beginPath();if(0<k.length){for(var q=!1,l=0;l<k.length;l++)if(r=k[l].x.getTime?k[l].x.getTime():k[l].x,!(r<a.axisX.dataInfo.viewPortMin||r>a.axisX.dataInfo.viewPortMax))if("number"!==typeof k[l].y)0<l&&(b.stroke(),t&&c.stroke()),
+q=!0;else{r=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(r-a.axisX.conversionParameters.minimum)+0.5<<0;m=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(k[l].y-a.axisY.conversionParameters.minimum)+0.5<<0;var n=g.dataPointIds[l];this._eventManager.objectMap[n]={id:n,objectType:"dataPoint",dataSeriesIndex:f,dataPointIndex:l,x1:r,y1:m};h||q?(b.beginPath(),b.moveTo(r,m),t&&(c.beginPath(),c.moveTo(r,m)),q=h=!1):(b.lineTo(r,m),t&&
+c.lineTo(r,m),0==l%500&&(b.stroke(),b.beginPath(),b.moveTo(r,m),t&&(c.stroke(),c.beginPath(),c.moveTo(r,m))));if(0<k[l].markerSize||0<g.markerSize){var s=g.getMarkerProperties(l,r,m,b);d.push(s);n=C(n);t&&d.push({x:r,y:m,ctx:c,type:s.type,size:s.size,color:n,borderColor:n,borderThickness:s.borderThickness})}(k[l].indexLabel||g.indexLabel)&&this._indexLabels.push({chartType:"line",dataPoint:k[l],dataSeries:g,point:{x:r,y:m},direction:0<=k[l].y?1:-1,color:p})}b.stroke();t&&c.stroke()}}J.drawMarkers(d);
+b.restore();b.beginPath();t&&c.beginPath();return{source:b,dest:this.plotArea.ctx,animationCallback:y.xClipAnimation,easingFunction:y.easing.linear,animationBase:0}}};v.prototype.renderStepLine=function(a){var b=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var c=this._eventManager.ghostCtx;b.save();var d=this.plotArea;b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();for(var d=[],e=0;e<a.dataSeriesIndexes.length;e++){var f=a.dataSeriesIndexes[e],g=this.data[f];
+b.lineWidth=g.lineThickness;var k=g.dataPoints,p=g.id;this._eventManager.objectMap[p]={objectType:"dataSeries",dataSeriesIndex:f};p=C(p);c.strokeStyle=p;c.lineWidth=0<g.lineThickness?Math.max(g.lineThickness,4):0;p=g._colorSet[0];b.strokeStyle=p;var h=!0,l=0,r,m;b.beginPath();if(0<k.length){for(var q=!1,l=0;l<k.length;l++)if(r=k[l].getTime?k[l].x.getTime():k[l].x,!(r<a.axisX.dataInfo.viewPortMin||r>a.axisX.dataInfo.viewPortMax))if("number"!==typeof k[l].y)0<l&&(b.stroke(),t&&c.stroke()),q=!0;else{var n=
+m;r=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(r-a.axisX.conversionParameters.minimum)+0.5<<0;m=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(k[l].y-a.axisY.conversionParameters.minimum)+0.5<<0;var s=g.dataPointIds[l];this._eventManager.objectMap[s]={id:s,objectType:"dataPoint",dataSeriesIndex:f,dataPointIndex:l,x1:r,y1:m};h||q?(b.beginPath(),b.moveTo(r,m),t&&(c.beginPath(),c.moveTo(r,m)),q=h=!1):(b.lineTo(r,n),t&&c.lineTo(r,
+n),b.lineTo(r,m),t&&c.lineTo(r,m),0==l%500&&(b.stroke(),b.beginPath(),b.moveTo(r,m),t&&(c.stroke(),c.beginPath(),c.moveTo(r,m))));if(0<k[l].markerSize||0<g.markerSize)n=g.getMarkerProperties(l,r,m,b),d.push(n),s=C(s),t&&d.push({x:r,y:m,ctx:c,type:n.type,size:n.size,color:s,borderColor:s,borderThickness:n.borderThickness});(k[l].indexLabel||g.indexLabel)&&this._indexLabels.push({chartType:"stepLine",dataPoint:k[l],dataSeries:g,point:{x:r,y:m},direction:0<=k[l].y?1:-1,color:p})}b.stroke();t&&c.stroke()}}J.drawMarkers(d);
+b.restore();b.beginPath();t&&c.beginPath();return{source:b,dest:this.plotArea.ctx,animationCallback:y.xClipAnimation,easingFunction:y.easing.linear,animationBase:0}}};v.prototype.renderSpline=function(a){function b(a){a=fa(a,2);if(0<a.length){c.beginPath();t&&d.beginPath();c.moveTo(a[0].x,a[0].y);t&&d.moveTo(a[0].x,a[0].y);for(var b=0;b<a.length-3;b+=3)c.bezierCurveTo(a[b+1].x,a[b+1].y,a[b+2].x,a[b+2].y,a[b+3].x,a[b+3].y),t&&d.bezierCurveTo(a[b+1].x,a[b+1].y,a[b+2].x,a[b+2].y,a[b+3].x,a[b+3].y),0<
+b&&0===b%3E3&&(c.stroke(),c.beginPath(),c.moveTo(a[b+3].x,a[b+3].y),t&&(d.stroke(),d.beginPath(),d.moveTo(a[b+3].x,a[b+3].y)));c.stroke();t&&d.stroke()}}var c=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var d=this._eventManager.ghostCtx;c.save();var e=this.plotArea;c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();for(var e=[],f=0;f<a.dataSeriesIndexes.length;f++){var g=a.dataSeriesIndexes[f],k=this.data[g];c.lineWidth=k.lineThickness;var p=k.dataPoints,h=k.id;
+this._eventManager.objectMap[h]={objectType:"dataSeries",dataSeriesIndex:g};h=C(h);d.strokeStyle=h;d.lineWidth=0<k.lineThickness?Math.max(k.lineThickness,4):0;h=k._colorSet[0];c.strokeStyle=h;var l=0,r,m,q=[];c.beginPath();if(0<p.length)for(l=0;l<p.length;l++)if(r=p[l].getTime?p[l].x.getTime():p[l].x,!(r<a.axisX.dataInfo.viewPortMin||r>a.axisX.dataInfo.viewPortMax))if("number"!==typeof p[l].y)0<l&&(b(q),q=[]);else{r=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*
+(r-a.axisX.conversionParameters.minimum)+0.5<<0;m=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(p[l].y-a.axisY.conversionParameters.minimum)+0.5<<0;var n=k.dataPointIds[l];this._eventManager.objectMap[n]={id:n,objectType:"dataPoint",dataSeriesIndex:g,dataPointIndex:l,x1:r,y1:m};q[q.length]={x:r,y:m};if(0<p[l].markerSize||0<k.markerSize){var s=k.getMarkerProperties(l,r,m,c);e.push(s);n=C(n);t&&e.push({x:r,y:m,ctx:d,type:s.type,size:s.size,color:n,borderColor:n,borderThickness:s.borderThickness})}(p[l].indexLabel||
+k.indexLabel)&&this._indexLabels.push({chartType:"spline",dataPoint:p[l],dataSeries:k,point:{x:r,y:m},direction:0<=p[l].y?1:-1,color:h})}b(q)}J.drawMarkers(e);c.restore();c.beginPath();t&&d.beginPath();return{source:c,dest:this.plotArea.ctx,animationCallback:y.xClipAnimation,easingFunction:y.easing.linear,animationBase:0}}};var F=function(a,b,c,d,e,f,g,k,p,h,l,r,m){"undefined"===typeof m&&(m=1);g=g||0;k=k||"black";var q=15<d-b&&15<e-c?8:0.35*Math.min(d-b,e-c);a.beginPath();a.moveTo(b,c);a.save();
+a.fillStyle=f;a.globalAlpha=m;a.fillRect(b,c,d-b,e-c);a.globalAlpha=1;0<g&&(m=0===g%2?0:0.5,a.beginPath(),a.lineWidth=g,a.strokeStyle=k,a.moveTo(b,c),a.rect(b-m,c-m,d-b+2*m,e-c+2*m),a.stroke());a.restore();!0===p&&(a.save(),a.beginPath(),a.moveTo(b,c),a.lineTo(b+q,c+q),a.lineTo(d-q,c+q),a.lineTo(d,c),a.closePath(),g=a.createLinearGradient((d+b)/2,c+q,(d+b)/2,c),g.addColorStop(0,f),g.addColorStop(1,"rgba(255, 255, 255, .4)"),a.fillStyle=g,a.fill(),a.restore());!0===h&&(a.save(),a.beginPath(),a.moveTo(b,
+e),a.lineTo(b+q,e-q),a.lineTo(d-q,e-q),a.lineTo(d,e),a.closePath(),g=a.createLinearGradient((d+b)/2,e-q,(d+b)/2,e),g.addColorStop(0,f),g.addColorStop(1,"rgba(255, 255, 255, .4)"),a.fillStyle=g,a.fill(),a.restore());!0===l&&(a.save(),a.beginPath(),a.moveTo(b,c),a.lineTo(b+q,c+q),a.lineTo(b+q,e-q),a.lineTo(b,e),a.closePath(),g=a.createLinearGradient(b+q,(e+c)/2,b,(e+c)/2),g.addColorStop(0,f),g.addColorStop(1,"rgba(255, 255, 255, 0.1)"),a.fillStyle=g,a.fill(),a.restore());!0===r&&(a.save(),a.beginPath(),
+a.moveTo(d,c),a.lineTo(d-q,c+q),a.lineTo(d-q,e-q),a.lineTo(d,e),g=a.createLinearGradient(d-q,(e+c)/2,d,(e+c)/2),g.addColorStop(0,f),g.addColorStop(1,"rgba(255, 255, 255, 0.1)"),a.fillStyle=g,g.addColorStop(0,f),g.addColorStop(1,"rgba(255, 255, 255, 0.1)"),a.fillStyle=g,a.fill(),a.closePath(),a.restore())};v.prototype.renderColumn=function(a){var b=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var c=null,d=this.plotArea,e=0,f,g,k,p=a.axisY.conversionParameters.reference+
+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,e=Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0,h=a.axisX.dataInfo.minDiff,l=0.9*(d.width/Math.abs(a.axisX.maximum-a.axisX.minimum)*Math.abs(h)/a.plotType.totalDataSeries)<<0;l>e?l=e:Infinity===h?l=e:1>l&&(l=1);b.save();t&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();t&&(this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),
+this._eventManager.ghostCtx.clip());for(d=0;d<a.dataSeriesIndexes.length;d++){var h=a.dataSeriesIndexes[d],r=this.data[h],m=r.dataPoints;if(0<m.length)for(var q=5<l&&r.bevelEnabled?!0:!1,e=0;e<m.length;e++)if(m[e].getTime?k=m[e].x.getTime():k=m[e].x,!(k<a.axisX.dataInfo.viewPortMin||k>a.axisX.dataInfo.viewPortMax)&&"number"===typeof m[e].y){f=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(k-a.axisX.conversionParameters.minimum)+0.5<<0;g=a.axisY.conversionParameters.reference+
+a.axisY.conversionParameters.pixelPerUnit*(m[e].y-a.axisY.conversionParameters.minimum)+0.5<<0;f=f-a.plotType.totalDataSeries*l/2+(a.previousDataSeriesCount+d)*l<<0;var n=f+l<<0,s;0<=m[e].y?s=p:(s=g,g=p);g>s&&(s=g=s);c=m[e].color?m[e].color:r._colorSet[e%r._colorSet.length];F(b,f,g,n,s,c,0,null,q&&0<=m[e].y,0>m[e].y&&q,!1,!1,r.fillOpacity);c=r.dataPointIds[e];this._eventManager.objectMap[c]={id:c,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:e,x1:f,y1:g,x2:n,y2:s};c=C(c);t&&F(this._eventManager.ghostCtx,
+f,g,n,s,c,0,null,!1,!1,!1,!1);(m[e].indexLabel||r.indexLabel)&&this._indexLabels.push({chartType:"column",dataPoint:m[e],dataSeries:r,point:{x:f+(n-f)/2,y:0<=m[e].y?g:s},direction:0<=m[e].y?1:-1,bounds:{x1:f,y1:Math.min(g,s),x2:n,y2:Math.max(g,s)},color:c})}}b.restore();t&&this._eventManager.ghostCtx.restore();a=Math.min(p,a.axisY.boundingRect.y2);return{source:b,dest:this.plotArea.ctx,animationCallback:y.yScaleAnimation,easingFunction:y.easing.easeOutQuart,animationBase:a}}};v.prototype.renderStackedColumn=
+function(a){var b=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var c=null,d=this.plotArea,e=[],f=[],g=0,k,p=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,g=0.15*this.width<<0,h=a.axisX.dataInfo.minDiff,l=0.9*(d.width/Math.abs(a.axisX.maximum-a.axisX.minimum)*Math.abs(h)/a.plotType.plotUnits.length)<<0;l>g?l=g:Infinity===h?l=g:1>l&&(l=1);b.save();t&&this._eventManager.ghostCtx.save();b.beginPath();
+b.rect(d.x1,d.y1,d.width,d.height);b.clip();t&&(this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(h=0;h<a.dataSeriesIndexes.length;h++){var r=a.dataSeriesIndexes[h],m=this.data[r],q=m.dataPoints;if(0<q.length){var n=5<l&&m.bevelEnabled?!0:!1;b.strokeStyle="#4572A7 ";for(g=0;g<q.length;g++)if(c=q[g].x.getTime?q[g].x.getTime():q[g].x,!(c<a.axisX.dataInfo.viewPortMin||c>a.axisX.dataInfo.viewPortMax)&&"number"===typeof q[g].y){d=a.axisX.conversionParameters.reference+
+a.axisX.conversionParameters.pixelPerUnit*(c-a.axisX.conversionParameters.minimum)+0.5<<0;k=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(q[g].y-a.axisY.conversionParameters.minimum);var s=d-a.plotType.plotUnits.length*l/2+a.index*l<<0,B=s+l<<0,u;if(0<=q[g].y){var x=e[c]?e[c]:0;k-=x;u=p-x;e[c]=x+(u-k)}else x=f[c]?f[c]:0,u=k+x,k=p+x,f[c]=x+(u-k);c=q[g].color?q[g].color:m._colorSet[g%m._colorSet.length];F(b,s,k,B,u,c,0,null,n&&0<=q[g].y,0>q[g].y&&n,!1,!1,m.fillOpacity);
+c=m.dataPointIds[g];this._eventManager.objectMap[c]={id:c,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:g,x1:s,y1:k,x2:B,y2:u};c=C(c);t&&F(this._eventManager.ghostCtx,s,k,B,u,c,0,null,!1,!1,!1,!1);(q[g].indexLabel||m.indexLabel)&&this._indexLabels.push({chartType:"stackedColumn",dataPoint:q[g],dataSeries:m,point:{x:d,y:0<=q[g].y?k:u},direction:0<=q[g].y?1:-1,bounds:{x1:s,y1:Math.min(k,u),x2:B,y2:Math.max(k,u)},color:c})}}}b.restore();t&&this._eventManager.ghostCtx.restore();a=Math.min(p,
+a.axisY.boundingRect.y2);return{source:b,dest:this.plotArea.ctx,animationCallback:y.yScaleAnimation,easingFunction:y.easing.easeOutQuart,animationBase:a}}};v.prototype.renderStackedColumn100=function(a){var b=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var c=null,d=this.plotArea,e=[],f=[],g=0,k,p=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,g=0.15*this.width<<0,h=a.axisX.dataInfo.minDiff,
+l=0.9*(d.width/Math.abs(a.axisX.maximum-a.axisX.minimum)*Math.abs(h)/a.plotType.plotUnits.length)<<0;l>g?l=g:Infinity===h?l=g:1>l&&(l=1);b.save();t&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();t&&(this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(h=0;h<a.dataSeriesIndexes.length;h++){var r=a.dataSeriesIndexes[h],m=this.data[r],q=m.dataPoints;if(0<q.length)for(var n=5<l&&m.bevelEnabled?!0:!1,g=0;g<q.length;g++)if(c=
+q[g].x.getTime?q[g].x.getTime():q[g].x,!(c<a.axisX.dataInfo.viewPortMin||c>a.axisX.dataInfo.viewPortMax)&&"number"===typeof q[g].y){d=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(c-a.axisX.conversionParameters.minimum)+0.5<<0;k=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*((0!==a.dataPointYSums[c]?100*(q[g].y/a.dataPointYSums[c]):0)-a.axisY.conversionParameters.minimum);var s=d-a.plotType.plotUnits.length*l/2+a.index*l<<0,B=
+s+l<<0,u;if(0<=q[g].y){var x=e[c]?e[c]:0;k-=x;u=p-x;e[c]=x+(u-k)}else x=f[c]?f[c]:0,u=k+x,k=p+x,f[c]=x+(u-k);c=q[g].color?q[g].color:m._colorSet[g%m._colorSet.length];F(b,s,k,B,u,c,0,null,n&&0<=q[g].y,0>q[g].y&&n,!1,!1,m.fillOpacity);c=m.dataPointIds[g];this._eventManager.objectMap[c]={id:c,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:g,x1:s,y1:k,x2:B,y2:u};c=C(c);t&&F(this._eventManager.ghostCtx,s,k,B,u,c,0,null,!1,!1,!1,!1);(q[g].indexLabel||m.indexLabel)&&this._indexLabels.push({chartType:"stackedColumn100",
+dataPoint:q[g],dataSeries:m,point:{x:d,y:0<=q[g].y?k:u},direction:0<=q[g].y?1:-1,bounds:{x1:s,y1:Math.min(k,u),x2:B,y2:Math.max(k,u)},color:c})}}b.restore();t&&this._eventManager.ghostCtx.restore();a=Math.min(p,a.axisY.boundingRect.y2);return{source:b,dest:this.plotArea.ctx,animationCallback:y.yScaleAnimation,easingFunction:y.easing.easeOutQuart,animationBase:a}}};v.prototype.renderBar=function(a){var b=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var c=null,d=this.plotArea,
+e=0,f,g,k,p=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,e=Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0,h=a.axisX.dataInfo.minDiff,l=0.9*(d.height/Math.abs(a.axisX.maximum-a.axisX.minimum)*Math.abs(h)/a.plotType.totalDataSeries)<<0;l>e?l=e:Infinity===h?l=e:1>l&&(l=1);b.save();t&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();t&&(this._eventManager.ghostCtx.rect(d.x1,
+d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(d=0;d<a.dataSeriesIndexes.length;d++){var h=a.dataSeriesIndexes[d],r=this.data[h],m=r.dataPoints;if(0<m.length){var q=5<l&&r.bevelEnabled?!0:!1;b.strokeStyle="#4572A7 ";for(e=0;e<m.length;e++)if(m[e].getTime?k=m[e].x.getTime():k=m[e].x,!(k<a.axisX.dataInfo.viewPortMin||k>a.axisX.dataInfo.viewPortMax)&&"number"===typeof m[e].y){g=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(k-a.axisX.conversionParameters.minimum)+
+0.5<<0;f=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(m[e].y-a.axisY.conversionParameters.minimum)+0.5<<0;g=g-a.plotType.totalDataSeries*l/2+(a.previousDataSeriesCount+d)*l<<0;var n=g+l<<0,s;0<=m[e].y?s=p:(s=f,f=p);c=m[e].color?m[e].color:r._colorSet[e%r._colorSet.length];F(b,s,g,f,n,c,0,null,q,!1,!1,!1,r.fillOpacity);c=r.dataPointIds[e];this._eventManager.objectMap[c]={id:c,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:e,x1:s,y1:g,x2:f,y2:n};c=C(c);
+t&&F(this._eventManager.ghostCtx,s,g,f,n,c,0,null,!1,!1,!1,!1);this._indexLabels.push({chartType:"bar",dataPoint:m[e],dataSeries:r,point:{x:0<=m[e].y?f:s,y:g+(n-g)/2},direction:0<=m[e].y?1:-1,bounds:{x1:Math.min(s,f),y1:g,x2:Math.max(s,f),y2:n},color:c})}}}b.restore();t&&this._eventManager.ghostCtx.restore();a=Math.max(p,a.axisX.boundingRect.x2);return{source:b,dest:this.plotArea.ctx,animationCallback:y.xScaleAnimation,easingFunction:y.easing.easeOutQuart,animationBase:a}}};v.prototype.renderStackedBar=
+function(a){var b=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var c=null,d=this.plotArea,e=[],f=[],g=0,k,p=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,g=0.15*this.height<<0,h=a.axisX.dataInfo.minDiff,l=0.9*(d.height/Math.abs(a.axisX.maximum-a.axisX.minimum)*Math.abs(h)/a.plotType.plotUnits.length)<<0;l>g?l=g:Infinity===h?l=g:1>l&&(l=1);b.save();t&&this._eventManager.ghostCtx.save();b.beginPath();
+b.rect(d.x1,d.y1,d.width,d.height);b.clip();t&&(this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(h=0;h<a.dataSeriesIndexes.length;h++){var r=a.dataSeriesIndexes[h],m=this.data[r],q=m.dataPoints;if(0<q.length){var n=5<l&&m.bevelEnabled?!0:!1;b.strokeStyle="#4572A7 ";for(g=0;g<q.length;g++)if(c=q[g].x.getTime?q[g].x.getTime():q[g].x,!(c<a.axisX.dataInfo.viewPortMin||c>a.axisX.dataInfo.viewPortMax)&&"number"===typeof q[g].y){d=a.axisX.conversionParameters.reference+
+a.axisX.conversionParameters.pixelPerUnit*(c-a.axisX.conversionParameters.minimum)+0.5<<0;k=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(q[g].y-a.axisY.conversionParameters.minimum);var s=d-a.plotType.plotUnits.length*l/2+a.index*l<<0,B=s+l<<0,u;if(0<=q[g].y){var x=e[c]?e[c]:0;u=p+x;k+=x;e[c]=x+(k-u)}else x=f[c]?f[c]:0,u=k-x,k=p-x,f[c]=x+(k-u);c=q[g].color?q[g].color:m._colorSet[g%m._colorSet.length];F(b,u,s,k,B,c,0,null,n,!1,!1,!1,m.fillOpacity);c=m.dataPointIds[g];
+this._eventManager.objectMap[c]={id:c,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:g,x1:u,y1:s,x2:k,y2:B};c=C(c);t&&F(this._eventManager.ghostCtx,u,s,k,B,c,0,null,!1,!1,!1,!1);this._indexLabels.push({chartType:"stackedBar",dataPoint:q[g],dataSeries:m,point:{x:0<=q[g].y?k:u,y:d},direction:0<=q[g].y?1:-1,bounds:{x1:Math.min(u,k),y1:s,x2:Math.max(u,k),y2:B},color:c})}}}b.restore();t&&this._eventManager.ghostCtx.restore();a=Math.max(p,a.axisX.boundingRect.x2);return{source:b,dest:this.plotArea.ctx,
+animationCallback:y.xScaleAnimation,easingFunction:y.easing.easeOutQuart,animationBase:a}}};v.prototype.renderStackedBar100=function(a){var b=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var c=null,d=this.plotArea,e=[],f=[],g=0,k,p=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,g=0.15*this.height<<0,h=a.axisX.dataInfo.minDiff,l=0.9*(d.height/Math.abs(a.axisX.maximum-a.axisX.minimum)*Math.abs(h)/
+a.plotType.plotUnits.length)<<0;l>g?l=g:Infinity===h?l=g:1>l&&(l=1);b.save();t&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();t&&(this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(h=0;h<a.dataSeriesIndexes.length;h++){var r=a.dataSeriesIndexes[h],m=this.data[r],q=m.dataPoints;if(0<q.length){var n=5<l&&m.bevelEnabled?!0:!1;b.strokeStyle="#4572A7 ";for(g=0;g<q.length;g++)if(c=q[g].x.getTime?q[g].x.getTime():
+q[g].x,!(c<a.axisX.dataInfo.viewPortMin||c>a.axisX.dataInfo.viewPortMax)&&"number"===typeof q[g].y){d=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(c-a.axisX.conversionParameters.minimum)+0.5<<0;k=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*((0!==a.dataPointYSums[c]?100*(q[g].y/a.dataPointYSums[c]):0)-a.axisY.conversionParameters.minimum);var s=d-a.plotType.plotUnits.length*l/2+a.index*l<<0,B=s+l<<0,u;if(0<=q[g].y){var x=e[c]?
+e[c]:0;u=p+x;k+=x;e[c]=x+(k-u)}else x=f[c]?f[c]:0,u=k-x,k=p-x,f[c]=x+(k-u);c=q[g].color?q[g].color:m._colorSet[g%m._colorSet.length];F(b,u,s,k,B,c,0,null,n,!1,!1,!1,m.fillOpacity);c=m.dataPointIds[g];this._eventManager.objectMap[c]={id:c,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:g,x1:u,y1:s,x2:k,y2:B};c=C(c);t&&F(this._eventManager.ghostCtx,u,s,k,B,c,0,null,!1,!1,!1,!1);this._indexLabels.push({chartType:"stackedBar100",dataPoint:q[g],dataSeries:m,point:{x:0<=q[g].y?k:u,y:d},direction:0<=
+q[g].y?1:-1,bounds:{x1:Math.min(u,k),y1:s,x2:Math.max(u,k),y2:B},color:c})}}}b.restore();t&&this._eventManager.ghostCtx.restore();a=Math.max(p,a.axisX.boundingRect.x2);return{source:b,dest:this.plotArea.ctx,animationCallback:y.xScaleAnimation,easingFunction:y.easing.easeOutQuart,animationBase:a}}};v.prototype.renderArea=function(a){function b(){x&&(0<h.lineThickness&&c.stroke(),0>=a.axisY.minimum&&0<=a.axisY.maximum?u=B:0>a.axisY.maximum?u=f.y1:0<a.axisY.minimum&&(u=e.y2),c.lineTo(q,u),c.lineTo(x.x,
+u),c.closePath(),c.globalAlpha=h.fillOpacity,c.fill(),c.globalAlpha=1,t&&(d.lineTo(q,u),d.lineTo(x.x,u),d.closePath(),d.fill()),c.beginPath(),c.moveTo(q,n),d.beginPath(),d.moveTo(q,n),x={x:q,y:n})}var c=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var d=this._eventManager.ghostCtx,e=a.axisX.lineCoordinates,f=a.axisY.lineCoordinates,g=[],k=this.plotArea;c.save();t&&d.save();c.beginPath();c.rect(k.x1,k.y1,k.width,k.height);c.clip();t&&(d.beginPath(),d.rect(k.x1,k.y1,k.width,
+k.height),d.clip());for(k=0;k<a.dataSeriesIndexes.length;k++){var p=a.dataSeriesIndexes[k],h=this.data[p],l=h.dataPoints,g=h.id;this._eventManager.objectMap[g]={objectType:"dataSeries",dataSeriesIndex:p};g=C(g);d.fillStyle=g;var g=[],r=!0,m=0,q,n,s,B=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)+0.5<<0,u,x=null;if(0<l.length){var w=h._colorSet[m%h._colorSet.length];c.fillStyle=w;c.strokeStyle=w;c.lineWidth=h.lineThickness;
+for(var Q=!0;m<l.length;m++)if(s=l[m].x.getTime?l[m].x.getTime():l[m].x,!(s<a.axisX.dataInfo.viewPortMin||s>a.axisX.dataInfo.viewPortMax))if("number"!==typeof l[m].y)b(),Q=!0;else{q=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(s-a.axisX.conversionParameters.minimum)+0.5<<0;n=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(l[m].y-a.axisY.conversionParameters.minimum)+0.5<<0;r||Q?(c.beginPath(),c.moveTo(q,n),x={x:q,y:n},t&&(d.beginPath(),
+d.moveTo(q,n)),Q=r=!1):(c.lineTo(q,n),t&&d.lineTo(q,n),0==m%250&&b());var G=h.dataPointIds[m];this._eventManager.objectMap[G]={id:G,objectType:"dataPoint",dataSeriesIndex:p,dataPointIndex:m,x1:q,y1:n};0!==l[m].markerSize&&(0<l[m].markerSize||0<h.markerSize)&&(s=h.getMarkerProperties(m,q,n,c),g.push(s),G=C(G),t&&g.push({x:q,y:n,ctx:d,type:s.type,size:s.size,color:G,borderColor:G,borderThickness:s.borderThickness}));(l[m].indexLabel||h.indexLabel)&&this._indexLabels.push({chartType:"area",dataPoint:l[m],
+dataSeries:h,point:{x:q,y:n},direction:0<=l[m].y?1:-1,color:w})}b();J.drawMarkers(g)}}c.restore();t&&this._eventManager.ghostCtx.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:y.xClipAnimation,easingFunction:y.easing.linear,animationBase:0}}};v.prototype.renderSplineArea=function(a){function b(){var b=fa(u,2);if(0<b.length){c.beginPath();c.moveTo(b[0].x,b[0].y);t&&(d.beginPath(),d.moveTo(b[0].x,b[0].y));for(var g=0;g<b.length-3;g+=3)c.bezierCurveTo(b[g+1].x,b[g+1].y,b[g+2].x,b[g+
+2].y,b[g+3].x,b[g+3].y),t&&d.bezierCurveTo(b[g+1].x,b[g+1].y,b[g+2].x,b[g+2].y,b[g+3].x,b[g+3].y);0<h.lineThickness&&c.stroke();0>=a.axisY.minimum&&0<=a.axisY.maximum?s=n:0>a.axisY.maximum?s=f.y1:0<a.axisY.minimum&&(s=e.y2);B={x:b[0].x,y:b[0].y};c.lineTo(b[b.length-1].x,s);c.lineTo(B.x,s);c.closePath();c.globalAlpha=h.fillOpacity;c.fill();c.globalAlpha=1;t&&(d.lineTo(b[b.length-1].x,s),d.lineTo(B.x,s),d.closePath(),d.fill())}}var c=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var d=
+this._eventManager.ghostCtx,e=a.axisX.lineCoordinates,f=a.axisY.lineCoordinates,g=[],k=this.plotArea;c.save();t&&d.save();c.beginPath();c.rect(k.x1,k.y1,k.width,k.height);c.clip();t&&(d.beginPath(),d.rect(k.x1,k.y1,k.width,k.height),d.clip());for(k=0;k<a.dataSeriesIndexes.length;k++){var p=a.dataSeriesIndexes[k],h=this.data[p],l=h.dataPoints,g=h.id;this._eventManager.objectMap[g]={objectType:"dataSeries",dataSeriesIndex:p};g=C(g);d.fillStyle=g;var g=[],r=0,m,q,n=a.axisY.conversionParameters.reference+
+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)+0.5<<0,s,B=null,u=[];if(0<l.length){color=h._colorSet[r%h._colorSet.length];c.fillStyle=color;c.strokeStyle=color;for(c.lineWidth=h.lineThickness;r<l.length;r++)if(m=l[r].x.getTime?l[r].x.getTime():l[r].x,!(m<a.axisX.dataInfo.viewPortMin||m>a.axisX.dataInfo.viewPortMax))if("number"!==typeof l[r].y)0<r&&(b(),u=[]);else{m=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(m-a.axisX.conversionParameters.minimum)+
+0.5<<0;q=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(l[r].y-a.axisY.conversionParameters.minimum)+0.5<<0;var x=h.dataPointIds[r];this._eventManager.objectMap[x]={id:x,objectType:"dataPoint",dataSeriesIndex:p,dataPointIndex:r,x1:m,y1:q};u[u.length]={x:m,y:q};if(0!==l[r].markerSize&&(0<l[r].markerSize||0<h.markerSize)){var w=h.getMarkerProperties(r,m,q,c);g.push(w);x=C(x);t&&g.push({x:m,y:q,ctx:d,type:w.type,size:w.size,color:x,borderColor:x,borderThickness:w.borderThickness})}(l[r].indexLabel||
+h.indexLabel)&&this._indexLabels.push({chartType:"splineArea",dataPoint:l[r],dataSeries:h,point:{x:m,y:q},direction:0<=l[r].y?1:-1,color:color})}b();J.drawMarkers(g)}}c.restore();t&&this._eventManager.ghostCtx.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:y.xClipAnimation,easingFunction:y.easing.linear,animationBase:0}}};v.prototype.renderStepArea=function(a){function b(){x&&(0<h.lineThickness&&c.stroke(),0>=a.axisY.minimum&&0<=a.axisY.maximum?u=B:0>a.axisY.maximum?u=f.y1:0<a.axisY.minimum&&
+(u=e.y2),c.lineTo(q,u),c.lineTo(x.x,u),c.closePath(),c.globalAlpha=h.fillOpacity,c.fill(),c.globalAlpha=1,t&&(d.lineTo(q,u),d.lineTo(x.x,u),d.closePath(),d.fill()),c.beginPath(),c.moveTo(q,n),d.beginPath(),d.moveTo(q,n),x={x:q,y:n})}var c=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var d=this._eventManager.ghostCtx,e=a.axisX.lineCoordinates,f=a.axisY.lineCoordinates,g=[],k=this.plotArea;c.save();t&&d.save();c.beginPath();c.rect(k.x1,k.y1,k.width,k.height);c.clip();t&&
+(d.beginPath(),d.rect(k.x1,k.y1,k.width,k.height),d.clip());for(k=0;k<a.dataSeriesIndexes.length;k++){var p=a.dataSeriesIndexes[k],h=this.data[p],l=h.dataPoints,g=h.id;this._eventManager.objectMap[g]={objectType:"dataSeries",dataSeriesIndex:p};g=C(g);d.fillStyle=g;var g=[],r=!0,m=0,q,n,s,B=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)+0.5<<0,u,x=null,w=!1;if(0<l.length){var Q=h._colorSet[m%h._colorSet.length];c.fillStyle=
+Q;c.strokeStyle=Q;for(c.lineWidth=h.lineThickness;m<l.length;m++)if(s=l[m].x.getTime?l[m].x.getTime():l[m].x,!(s<a.axisX.dataInfo.viewPortMin||s>a.axisX.dataInfo.viewPortMax)){var v=n;"number"!==typeof l[m].y?(b(),w=!0):(q=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(s-a.axisX.conversionParameters.minimum)+0.5<<0,n=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(l[m].y-a.axisY.conversionParameters.minimum)+0.5<<0,r||w?(c.beginPath(),
+c.moveTo(q,n),x={x:q,y:n},t&&(d.beginPath(),d.moveTo(q,n)),w=r=!1):(c.lineTo(q,v),t&&d.lineTo(q,v),c.lineTo(q,n),t&&d.lineTo(q,n),0==m%250&&b()),v=h.dataPointIds[m],this._eventManager.objectMap[v]={id:v,objectType:"dataPoint",dataSeriesIndex:p,dataPointIndex:m,x1:q,y1:n},0!==l[m].markerSize&&(0<l[m].markerSize||0<h.markerSize)&&(s=h.getMarkerProperties(m,q,n,c),g.push(s),v=C(v),t&&g.push({x:q,y:n,ctx:d,type:s.type,size:s.size,color:v,borderColor:v,borderThickness:s.borderThickness})),(l[m].indexLabel||
+h.indexLabel)&&this._indexLabels.push({chartType:"stepArea",dataPoint:l[m],dataSeries:h,point:{x:q,y:n},direction:0<=l[m].y?1:-1,color:Q}))}b();J.drawMarkers(g)}}c.restore();t&&this._eventManager.ghostCtx.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:y.xClipAnimation,easingFunction:y.easing.linear,animationBase:0}}};v.prototype.renderStackedArea=function(a){var b=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var c=null,d=[],e=this.plotArea,f=[],g=[],
+k=0,p,h,l,r=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,m=this._eventManager.ghostCtx;t&&m.beginPath();b.save();t&&m.save();b.beginPath();b.rect(e.x1,e.y1,e.width,e.height);b.clip();t&&(m.beginPath(),m.rect(e.x1,e.y1,e.width,e.height),m.clip());xValuePresent=[];for(e=0;e<a.dataSeriesIndexes.length;e++){var q=a.dataSeriesIndexes[e],n=this.data[q],s=n.dataPoints;n.dataPointIndexes=[];for(k=0;k<s.length;k++)q=s[k].x.getTime?
+s[k].x.getTime():s[k].x,n.dataPointIndexes[q]=k,xValuePresent[q]||(g.push(q),xValuePresent[q]=!0);g.sort(ra)}for(e=0;e<a.dataSeriesIndexes.length;e++){var q=a.dataSeriesIndexes[e],n=this.data[q],s=n.dataPoints,B=!0,u=[],k=n.id;this._eventManager.objectMap[k]={objectType:"dataSeries",dataSeriesIndex:q};k=C(k);m.fillStyle=k;if(0<g.length){c=n._colorSet[0];b.fillStyle=c;b.strokeStyle=c;b.lineWidth=n.lineThickness;for(k=0;k<g.length;k++){l=g[k];var x=null,x=0<=n.dataPointIndexes[l]?s[n.dataPointIndexes[l]]:
+{x:l,y:0};if(!(l<a.axisX.dataInfo.viewPortMin||l>a.axisX.dataInfo.viewPortMax)&&"number"===typeof x.y){p=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(l-a.axisX.conversionParameters.minimum)+0.5<<0;h=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(x.y-a.axisY.conversionParameters.minimum);var w=f[l]?f[l]:0;h-=w;u.push({x:p,y:r-w});f[l]=r-h;if(B)b.beginPath(),b.moveTo(p,h),t&&(m.beginPath(),m.moveTo(p,h)),B=!1;else if(b.lineTo(p,
+h),t&&m.lineTo(p,h),0==k%250){for(0<n.lineThickness&&b.stroke();0<u.length;){var v=u.pop();b.lineTo(v.x,v.y);t&&m.lineTo(v.x,v.y)}b.closePath();b.globalAlpha=n.fillOpacity;b.fill();b.globalAlpha=1;b.beginPath();b.moveTo(p,h);t&&(m.closePath(),m.fill(),m.beginPath(),m.moveTo(p,h));u.push({x:p,y:r-w})}if(0<=n.dataPointIndexes[l]){var G=n.dataPointIds[n.dataPointIndexes[l]];this._eventManager.objectMap[G]={id:G,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:n.dataPointIndexes[l],x1:p,y1:h}}0<=
+n.dataPointIndexes[l]&&0!==x.markerSize&&(0<x.markerSize||0<n.markerSize)&&(l=n.getMarkerProperties(k,p,h,b),d.push(l),markerColor=C(G),t&&d.push({x:p,y:h,ctx:m,type:l.type,size:l.size,color:markerColor,borderColor:markerColor,borderThickness:l.borderThickness}));(x.indexLabel||n.indexLabel)&&this._indexLabels.push({chartType:"stackedArea",dataPoint:x,dataSeries:n,point:{x:p,y:h},direction:0<=s[k].y?1:-1,color:c})}}for(0<n.lineThickness&&b.stroke();0<u.length;)v=u.pop(),b.lineTo(v.x,v.y),t&&m.lineTo(v.x,
+v.y);b.closePath();b.globalAlpha=n.fillOpacity;b.fill();b.globalAlpha=1;b.beginPath();b.moveTo(p,h);t&&(m.closePath(),m.fill(),m.beginPath(),m.moveTo(p,h))}delete n.dataPointIndexes}J.drawMarkers(d);b.restore();t&&m.restore();return{source:b,dest:this.plotArea.ctx,animationCallback:y.xClipAnimation,easingFunction:y.easing.linear,animationBase:0}}};v.prototype.renderStackedArea100=function(a){var b=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var c=null,d=this.plotArea,
+e=[],f=[],g=[],k=0,p,h,l,r=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,m=0.15*this.width<<0,q=a.axisX.dataInfo.minDiff,q=0.9*d.width/Math.abs(a.axisX.maximum-a.axisX.minimum)*Math.abs(q)<<0,n=this._eventManager.ghostCtx;b.save();t&&n.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();t&&(n.beginPath(),n.rect(d.x1,d.y1,d.width,d.height),n.clip());xValuePresent=[];for(d=0;d<a.dataSeriesIndexes.length;d++){var s=
+a.dataSeriesIndexes[d],B=this.data[s],u=B.dataPoints;B.dataPointIndexes=[];for(k=0;k<u.length;k++)s=u[k].x.getTime?u[k].x.getTime():u[k].x,B.dataPointIndexes[s]=k,xValuePresent[s]||(g.push(s),xValuePresent[s]=!0);g.sort(ra)}for(d=0;d<a.dataSeriesIndexes.length;d++){var s=a.dataSeriesIndexes[d],B=this.data[s],u=B.dataPoints,x=!0,c=B.id;this._eventManager.objectMap[c]={objectType:"dataSeries",dataSeriesIndex:s};c=C(c);n.fillStyle=c;1==u.length&&(q=m);1>q?q=1:q>m&&(q=m);var w=[];if(0<g.length){c=B._colorSet[k%
+B._colorSet.length];b.fillStyle=c;b.strokeStyle=c;b.lineWidth=B.lineThickness;for(k=0;k<g.length;k++){l=g[k];var v=null,v=0<=B.dataPointIndexes[l]?u[B.dataPointIndexes[l]]:{x:l,y:0};if(!(l<a.axisX.dataInfo.viewPortMin||l>a.axisX.dataInfo.viewPortMax)&&"number"===typeof v.y){h=0!==a.dataPointYSums[l]?100*(v.y/a.dataPointYSums[l]):0;p=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(l-a.axisX.conversionParameters.minimum)+0.5<<0;h=a.axisY.conversionParameters.reference+
+a.axisY.conversionParameters.pixelPerUnit*(h-a.axisY.conversionParameters.minimum);var G=f[l]?f[l]:0;h-=G;w.push({x:p,y:r-G});f[l]=r-h;if(x)b.beginPath(),b.moveTo(p,h),t&&(n.beginPath(),n.moveTo(p,h)),x=!1;else if(b.lineTo(p,h),t&&n.lineTo(p,h),0==k%250){for(0<B.lineThickness&&b.stroke();0<w.length;){var z=w.pop();b.lineTo(z.x,z.y);t&&n.lineTo(z.x,z.y)}b.closePath();b.globalAlpha=B.fillOpacity;b.fill();b.globalAlpha=1;b.beginPath();b.moveTo(p,h);t&&(n.closePath(),n.fill(),n.beginPath(),n.moveTo(p,
+h));w.push({x:p,y:r-G})}if(0<=B.dataPointIndexes[l]){var A=B.dataPointIds[B.dataPointIndexes[l]];this._eventManager.objectMap[A]={id:A,objectType:"dataPoint",dataSeriesIndex:s,dataPointIndex:B.dataPointIndexes[l],x1:p,y1:h}}0<=B.dataPointIndexes[l]&&0!==v.markerSize&&(0<v.markerSize||0<B.markerSize)&&(l=B.getMarkerProperties(k,p,h,b),e.push(l),markerColor=C(A),t&&e.push({x:p,y:h,ctx:n,type:l.type,size:l.size,color:markerColor,borderColor:markerColor,borderThickness:l.borderThickness}));(v.indexLabel||
+B.indexLabel)&&this._indexLabels.push({chartType:"stackedArea100",dataPoint:v,dataSeries:B,point:{x:p,y:h},direction:0<=u[k].y?1:-1,color:c})}}for(0<B.lineThickness&&b.stroke();0<w.length;)z=w.pop(),b.lineTo(z.x,z.y),t&&n.lineTo(z.x,z.y);b.closePath();b.globalAlpha=B.fillOpacity;b.fill();b.globalAlpha=1;b.beginPath();b.moveTo(p,h);t&&(n.closePath(),n.fill(),n.beginPath(),n.moveTo(p,h))}delete B.dataPointIndexes}J.drawMarkers(e);b.restore();t&&n.restore();return{source:b,dest:this.plotArea.ctx,animationCallback:y.xClipAnimation,
+easingFunction:y.easing.linear,animationBase:0}}};v.prototype.renderBubble=function(a){var b=a.targetCanvasCtx||this.plotArea.ctx,c=a.dataSeriesIndexes.length;if(!(0>=c)){var d=this.plotArea,e=0,f,g,k=0.15*this.width<<0,e=a.axisX.dataInfo.minDiff,c=0.9*(d.width/Math.abs(a.axisX.maximum-a.axisX.minimum)*Math.abs(e)/c)<<0;b.save();t&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();t&&(this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());
+for(var p=-Infinity,h=Infinity,l=0;l<a.dataSeriesIndexes.length;l++)for(var r=a.dataSeriesIndexes[l],m=this.data[r],q=m.dataPoints,n=0,e=0;e<q.length;e++)f=q[e].getTime?f=q[e].x.getTime():f=q[e].x,f<a.axisX.dataInfo.viewPortMin||f>a.axisX.dataInfo.viewPortMax||"undefined"===typeof q[e].z||(n=q[e].z,n>p&&(p=n),n<h&&(h=n));for(var s=25*Math.PI,d=Math.max(Math.pow(0.25*Math.min(d.height,d.width)/2,2)*Math.PI,s),l=0;l<a.dataSeriesIndexes.length;l++)if(r=a.dataSeriesIndexes[l],m=this.data[r],q=m.dataPoints,
+1==q.length&&(c=k),1>c?c=1:c>k&&(c=k),0<q.length)for(b.strokeStyle="#4572A7 ",e=0;e<q.length;e++)if(f=q[e].getTime?f=q[e].x.getTime():f=q[e].x,!(f<a.axisX.dataInfo.viewPortMin||f>a.axisX.dataInfo.viewPortMax)&&"number"===typeof q[e].y){f=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(f-a.axisX.conversionParameters.minimum)+0.5<<0;g=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(q[e].y-a.axisY.conversionParameters.minimum)+0.5<<
+0;var n=q[e].z,B=2*Math.max(Math.sqrt((p===h?d/2:s+(d-s)/(p-h)*(n-h))/Math.PI)<<0,1),n=m.getMarkerProperties(e,b);n.size=B;b.globalAlpha=m.fillOpacity;J.drawMarker(f,g,b,n.type,n.size,n.color,n.borderColor,n.borderThickness);b.globalAlpha=1;var u=m.dataPointIds[e];this._eventManager.objectMap[u]={id:u,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:e,x1:f,y1:g,size:B};B=C(u);t&&J.drawMarker(f,g,this._eventManager.ghostCtx,n.type,n.size,B,B,n.borderThickness);(q[e].indexLabel||m.indexLabel)&&
+this._indexLabels.push({chartType:"bubble",dataPoint:q[e],dataSeries:m,point:{x:f,y:g},direction:1,color:null})}b.restore();t&&this._eventManager.ghostCtx.restore();return{source:b,dest:this.plotArea.ctx,animationCallback:y.fadeInAnimation,easingFunction:y.easing.easeInQuad,animationBase:0}}};v.prototype.renderScatter=function(a){var b=a.targetCanvasCtx||this.plotArea.ctx,c=a.dataSeriesIndexes.length;if(!(0>=c)){var d=this.plotArea,e=0,f,g,k=0.15*this.width<<0,e=a.axisX.dataInfo.minDiff,c=0.9*(d.width/
+Math.abs(a.axisX.maximum-a.axisX.minimum)*Math.abs(e)/c)<<0;b.save();t&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();t&&(this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(var p=0;p<a.dataSeriesIndexes.length;p++){var h=a.dataSeriesIndexes[p],l=this.data[h],r=l.dataPoints;1==r.length&&(c=k);1>c?c=1:c>k&&(c=k);if(0<r.length){b.strokeStyle="#4572A7 ";Math.pow(0.3*Math.min(d.height,d.width)/2,2);for(var m=
+0,q=0,e=0;e<r.length;e++)if(f=r[e].getTime?f=r[e].x.getTime():f=r[e].x,!(f<a.axisX.dataInfo.viewPortMin||f>a.axisX.dataInfo.viewPortMax)&&"number"===typeof r[e].y){f=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(f-a.axisX.conversionParameters.minimum)+0.5<<0;g=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(r[e].y-a.axisY.conversionParameters.minimum)+0.5<<0;var n=l.getMarkerProperties(e,f,g,b);b.globalAlpha=l.fillOpacity;J.drawMarker(n.x,
+n.y,n.ctx,n.type,n.size,n.color,n.borderColor,n.borderThickness);b.globalAlpha=1;Math.sqrt((m-f)*(m-f)+(q-g)*(q-g))<Math.min(n.size,5)&&r.length>Math.min(this.plotArea.width,this.plotArea.height)||(m=l.dataPointIds[e],this._eventManager.objectMap[m]={id:m,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:e,x1:f,y1:g},m=C(m),t&&J.drawMarker(n.x,n.y,this._eventManager.ghostCtx,n.type,n.size,m,m,n.borderThickness),(r[e].indexLabel||l.indexLabel)&&this._indexLabels.push({chartType:"scatter",dataPoint:r[e],
+dataSeries:l,point:{x:f,y:g},direction:1,color:null}),m=f,q=g)}}}b.restore();t&&this._eventManager.ghostCtx.restore();return{source:b,dest:this.plotArea.ctx,animationCallback:y.fadeInAnimation,easingFunction:y.easing.easeInQuad,animationBase:0}}};v.prototype.renderCandlestick=function(a){var b=a.targetCanvasCtx||this.plotArea.ctx,c=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var d=null,d=this.plotArea,e=0,f,g,k,p,h,l,e=0.015*this.width;f=a.axisX.dataInfo.minDiff;var r=0.7*d.width/
+Math.abs(a.axisX.maximum-a.axisX.minimum)*Math.abs(f)<<0;r>e?r=e:Infinity===f?r=e:1>r&&(r=1);b.save();t&&c.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();t&&(c.rect(d.x1,d.y1,d.width,d.height),c.clip());for(var m=0;m<a.dataSeriesIndexes.length;m++){var q=a.dataSeriesIndexes[m],n=this.data[q],s=n.dataPoints;if(0<s.length)for(var B=5<r&&n.bevelEnabled?!0:!1,e=0;e<s.length;e++)if(s[e].getTime?l=s[e].x.getTime():l=s[e].x,!(l<a.axisX.dataInfo.viewPortMin||l>a.axisX.dataInfo.viewPortMax)&&
+null!==s[e].y&&s[e].y.length&&"number"===typeof s[e].y[0]&&"number"===typeof s[e].y[1]&&"number"===typeof s[e].y[2]&&"number"===typeof s[e].y[3]){f=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(l-a.axisX.conversionParameters.minimum)+0.5<<0;g=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(s[e].y[0]-a.axisY.conversionParameters.minimum)+0.5<<0;k=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(s[e].y[1]-
+a.axisY.conversionParameters.minimum)+0.5<<0;p=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(s[e].y[2]-a.axisY.conversionParameters.minimum)+0.5<<0;h=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(s[e].y[3]-a.axisY.conversionParameters.minimum)+0.5<<0;var u=f-r/2<<0,x=u+r<<0,d=s[e].color?s[e].color:n._colorSet[0],w=Math.round(Math.max(1,0.15*r)),v=0===w%2?0:0.5,G=n.dataPointIds[e];this._eventManager.objectMap[G]={id:G,objectType:"dataPoint",
+dataSeriesIndex:q,dataPointIndex:e,x1:u,y1:g,x2:x,y2:k,x3:f,y3:p,x4:f,y4:h,borderThickness:w,color:d};b.strokeStyle=d;b.beginPath();b.lineWidth=w;c.lineWidth=Math.max(w,4);"candlestick"===n.type?(b.moveTo(f-v,k),b.lineTo(f-v,Math.min(g,h)),b.stroke(),b.moveTo(f-v,Math.max(g,h)),b.lineTo(f-v,p),b.stroke(),F(b,u,Math.min(g,h),x,Math.max(g,h),s[e].y[0]<=s[e].y[3]?n.risingColor:d,w,d,B,B,!1,!1,n.fillOpacity),t&&(d=C(G),c.strokeStyle=d,c.moveTo(f-v,k),c.lineTo(f-v,Math.min(g,h)),c.stroke(),c.moveTo(f-
+v,Math.max(g,h)),c.lineTo(f-v,p),c.stroke(),F(c,u,Math.min(g,h),x,Math.max(g,h),d,0,null,!1,!1,!1,!1))):"ohlc"===n.type&&(b.moveTo(f-v,k),b.lineTo(f-v,p),b.stroke(),b.beginPath(),b.moveTo(f,g),b.lineTo(u,g),b.stroke(),b.beginPath(),b.moveTo(f,h),b.lineTo(x,h),b.stroke(),t&&(d=C(G),c.strokeStyle=d,c.moveTo(f-v,k),c.lineTo(f-v,p),c.stroke(),c.beginPath(),c.moveTo(f,g),c.lineTo(u,g),c.stroke(),c.beginPath(),c.moveTo(f,h),c.lineTo(x,h),c.stroke()));(s[e].indexLabel||n.indexLabel)&&this._indexLabels.push({chartType:n.type,
+dataPoint:s[e],dataSeries:n,point:{x:u+(x-u)/2,y:k},direction:1,bounds:{x1:u,y1:Math.min(k,p),x2:x,y2:Math.max(k,p)},color:d})}}b.restore();t&&c.restore();return{source:b,dest:this.plotArea.ctx,animationCallback:y.fadeInAnimation,easingFunction:y.easing.easeInQuad,animationBase:0}}};v.prototype.renderRangeColumn=function(a){var b=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var c=null,d=this.plotArea,e=0,f,g,e=0.03*this.width;f=a.axisX.dataInfo.minDiff;var k=0.9*(d.width/
+Math.abs(a.axisX.maximum-a.axisX.minimum)*Math.abs(f)/a.plotType.totalDataSeries)<<0;k>e?k=e:Infinity===f?k=e:1>k&&(k=1);b.save();t&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();t&&(this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(var p=0;p<a.dataSeriesIndexes.length;p++){var h=a.dataSeriesIndexes[p],l=this.data[h],r=l.dataPoints;if(0<r.length)for(var m=5<k&&l.bevelEnabled?!0:!1,e=0;e<r.length;e++)if(r[e].getTime?
+g=r[e].x.getTime():g=r[e].x,!(g<a.axisX.dataInfo.viewPortMin||g>a.axisX.dataInfo.viewPortMax)&&null!==r[e].y&&r[e].y.length&&"number"===typeof r[e].y[0]&&"number"===typeof r[e].y[1]){c=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(g-a.axisX.conversionParameters.minimum)+0.5<<0;d=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(r[e].y[0]-a.axisY.conversionParameters.minimum)+0.5<<0;f=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*
+(r[e].y[1]-a.axisY.conversionParameters.minimum)+0.5<<0;var q=c-a.plotType.totalDataSeries*k/2+(a.previousDataSeriesCount+p)*k<<0,n=q+k<<0,c=r[e].color?r[e].color:l._colorSet[e%l._colorSet.length];if(d>f){var s=d,d=f;f=s}s=l.dataPointIds[e];this._eventManager.objectMap[s]={id:s,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:e,x1:q,y1:d,x2:n,y2:f};F(b,q,d,n,f,c,0,c,m,m,!1,!1,l.fillOpacity);c=C(s);t&&F(this._eventManager.ghostCtx,q,d,n,f,c,0,null,!1,!1,!1,!1);if(r[e].indexLabel||l.indexLabel)this._indexLabels.push({chartType:"rangeColumn",
+dataPoint:r[e],dataSeries:l,indexKeyword:0,point:{x:q+(n-q)/2,y:r[e].y[1]>=r[e].y[0]?f:d},direction:r[e].y[1]>=r[e].y[0]?-1:1,bounds:{x1:q,y1:Math.min(d,f),x2:n,y2:Math.max(d,f)},color:c}),this._indexLabels.push({chartType:"rangeColumn",dataPoint:r[e],dataSeries:l,indexKeyword:1,point:{x:q+(n-q)/2,y:r[e].y[1]>=r[e].y[0]?d:f},direction:r[e].y[1]>=r[e].y[0]?1:-1,bounds:{x1:q,y1:Math.min(d,f),x2:n,y2:Math.max(d,f)},color:c})}}b.restore();t&&this._eventManager.ghostCtx.restore();return{source:b,dest:this.plotArea.ctx,
+animationCallback:y.fadeInAnimation,easingFunction:y.easing.easeInQuad,animationBase:0}}};v.prototype.renderRangeBar=function(a){var b=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var c=null,d=this.plotArea,e=0,f,g,k,e=Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0;f=a.axisX.dataInfo.minDiff;var p=0.9*(d.height/Math.abs(a.axisX.maximum-a.axisX.minimum)*Math.abs(f)/a.plotType.totalDataSeries)<<0;p>e?p=e:Infinity===f?p=e:1>p&&(p=1);b.save();
+t&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();t&&(this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(var h=0;h<a.dataSeriesIndexes.length;h++){var l=a.dataSeriesIndexes[h],r=this.data[l],m=r.dataPoints;if(0<m.length){var q=5<p&&r.bevelEnabled?!0:!1;b.strokeStyle="#4572A7 ";for(e=0;e<m.length;e++)if(m[e].getTime?k=m[e].x.getTime():k=m[e].x,!(k<a.axisX.dataInfo.viewPortMin||k>a.axisX.dataInfo.viewPortMax)&&
+null!==m[e].y&&m[e].y.length&&"number"===typeof m[e].y[0]&&"number"===typeof m[e].y[1]){d=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(m[e].y[0]-a.axisY.conversionParameters.minimum)+0.5<<0;f=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(m[e].y[1]-a.axisY.conversionParameters.minimum)+0.5<<0;g=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(k-a.axisX.conversionParameters.minimum)+0.5<<0;g=g-
+a.plotType.totalDataSeries*p/2+(a.previousDataSeriesCount+h)*p<<0;var n=g+p<<0;d>f&&(c=d,d=f,f=c);c=m[e].color?m[e].color:r._colorSet[e%r._colorSet.length];F(b,d,g,f,n,c,0,null,q,!1,!1,!1,r.fillOpacity);c=r.dataPointIds[e];this._eventManager.objectMap[c]={id:c,objectType:"dataPoint",dataSeriesIndex:l,dataPointIndex:e,x1:d,y1:g,x2:f,y2:n};c=C(c);t&&F(this._eventManager.ghostCtx,d,g,f,n,c,0,null,!1,!1,!1,!1);if(m[e].indexLabel||r.indexLabel)this._indexLabels.push({chartType:"rangeBar",dataPoint:m[e],
+dataSeries:r,indexKeyword:0,point:{x:m[e].y[1]>=m[e].y[0]?d:f,y:g+(n-g)/2},direction:m[e].y[1]>=m[e].y[0]?-1:1,bounds:{x1:Math.min(d,f),y1:g,x2:Math.max(d,f),y2:n},color:c}),this._indexLabels.push({chartType:"rangeBar",dataPoint:m[e],dataSeries:r,indexKeyword:1,point:{x:m[e].y[1]>=m[e].y[0]?f:d,y:g+(n-g)/2},direction:m[e].y[1]>=m[e].y[0]?1:-1,bounds:{x1:Math.min(d,f),y1:g,x2:Math.max(d,f),y2:n},color:c})}}}b.restore();t&&this._eventManager.ghostCtx.restore();return{source:b,dest:this.plotArea.ctx,
+animationCallback:y.fadeInAnimation,easingFunction:y.easing.easeInQuad,animationBase:0}}};v.prototype.renderRangeArea=function(a){function b(){if(v){var a=null;0<p.lineThickness&&c.stroke();for(var b=g.length-1;0<=b;b--)a=g[b],c.lineTo(a.x,a.y),d.lineTo(a.x,a.y);c.closePath();c.globalAlpha=p.fillOpacity;c.fill();c.globalAlpha=1;d.fill();if(0<p.lineThickness){c.beginPath();c.moveTo(a.x,a.y);for(b=0;b<g.length;b++)a=g[b],c.lineTo(a.x,a.y);c.stroke()}c.beginPath();c.moveTo(m,q);d.beginPath();d.moveTo(m,
+q);v={x:m,y:q};g=[];g.push({x:m,y:n})}}var c=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var d=this._eventManager.ghostCtx,e=[],f=this.plotArea;c.save();t&&d.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();t&&(d.beginPath(),d.rect(f.x1,f.y1,f.width,f.height),d.clip());for(f=0;f<a.dataSeriesIndexes.length;f++){var g=[],k=a.dataSeriesIndexes[f],p=this.data[k],h=p.dataPoints,e=p.id;this._eventManager.objectMap[e]={objectType:"dataSeries",dataSeriesIndex:k};
+e=C(e);d.fillStyle=e;var e=[],l=!0,r=0,m,q,n,s,v=null;if(0<h.length){var u=p._colorSet[r%p._colorSet.length];c.fillStyle=u;c.strokeStyle=u;c.lineWidth=p.lineThickness;for(var x=!0;r<h.length;r++)if(s=h[r].x.getTime?h[r].x.getTime():h[r].x,!(s<a.axisX.dataInfo.viewPortMin||s>a.axisX.dataInfo.viewPortMax))if(null!==h[r].y&&h[r].y.length&&"number"===typeof h[r].y[0]&&"number"===typeof h[r].y[1]){m=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(s-a.axisX.conversionParameters.minimum)+
+0.5<<0;q=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(h[r].y[0]-a.axisY.conversionParameters.minimum)+0.5<<0;n=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(h[r].y[1]-a.axisY.conversionParameters.minimum)+0.5<<0;l||x?(c.beginPath(),c.moveTo(m,q),v={x:m,y:q},g=[],g.push({x:m,y:n}),t&&(d.beginPath(),d.moveTo(m,q)),x=l=!1):(c.lineTo(m,q),g.push({x:m,y:n}),t&&d.lineTo(m,q),0==r%250&&b());s=p.dataPointIds[r];this._eventManager.objectMap[s]=
+{id:s,objectType:"dataPoint",dataSeriesIndex:k,dataPointIndex:r,x1:m,y1:q,y2:n};if(0!==h[r].markerSize&&(0<h[r].markerSize||0<p.markerSize)){var w=p.getMarkerProperties(r,m,n,c);e.push(w);var z=C(s);t&&e.push({x:m,y:n,ctx:d,type:w.type,size:w.size,color:z,borderColor:z,borderThickness:w.borderThickness});w=p.getMarkerProperties(r,m,q,c);e.push(w);z=C(s);t&&e.push({x:m,y:q,ctx:d,type:w.type,size:w.size,color:z,borderColor:z,borderThickness:w.borderThickness})}if(h[r].indexLabel||p.indexLabel)this._indexLabels.push({chartType:"rangeArea",
+dataPoint:h[r],dataSeries:p,indexKeyword:0,point:{x:m,y:q},direction:h[r].y[0]<=h[r].y[1]?-1:1,color:u}),this._indexLabels.push({chartType:"rangeArea",dataPoint:h[r],dataSeries:p,indexKeyword:1,point:{x:m,y:n},direction:h[r].y[0]<=h[r].y[1]?1:-1,color:u})}else b(),x=!0;b();J.drawMarkers(e)}}c.restore();t&&this._eventManager.ghostCtx.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:y.xClipAnimation,easingFunction:y.easing.linear,animationBase:0}}};v.prototype.renderRangeSplineArea=
+function(a){function b(){var a=fa(q,2);if(0<a.length){c.beginPath();c.moveTo(a[0].x,a[0].y);t&&(d.beginPath(),d.moveTo(a[0].x,a[0].y));for(var b=0;b<a.length-3;b+=3)c.bezierCurveTo(a[b+1].x,a[b+1].y,a[b+2].x,a[b+2].y,a[b+3].x,a[b+3].y),t&&d.bezierCurveTo(a[b+1].x,a[b+1].y,a[b+2].x,a[b+2].y,a[b+3].x,a[b+3].y);0<k.lineThickness&&c.stroke();a=fa(n,2);c.lineTo(n[n.length-1].x,n[n.length-1].y);for(b=a.length-1;2<b;b-=3)c.bezierCurveTo(a[b-1].x,a[b-1].y,a[b-2].x,a[b-2].y,a[b-3].x,a[b-3].y),t&&d.bezierCurveTo(a[b-
+1].x,a[b-1].y,a[b-2].x,a[b-2].y,a[b-3].x,a[b-3].y);c.closePath();c.globalAlpha=k.fillOpacity;c.fill();c.globalAlpha=1;if(0<k.lineThickness){c.beginPath();c.moveTo(n[n.length-1].x,n[n.length-1].y);for(b=a.length-1;2<b;b-=3)c.bezierCurveTo(a[b-1].x,a[b-1].y,a[b-2].x,a[b-2].y,a[b-3].x,a[b-3].y),t&&d.bezierCurveTo(a[b-1].x,a[b-1].y,a[b-2].x,a[b-2].y,a[b-3].x,a[b-3].y);c.stroke()}c.beginPath();t&&(d.closePath(),d.fill())}}var c=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var d=
+this._eventManager.ghostCtx,e=[],f=this.plotArea;c.save();t&&d.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();t&&(d.beginPath(),d.rect(f.x1,f.y1,f.width,f.height),d.clip());for(f=0;f<a.dataSeriesIndexes.length;f++){var g=a.dataSeriesIndexes[f],k=this.data[g],p=k.dataPoints,e=k.id;this._eventManager.objectMap[e]={objectType:"dataSeries",dataSeriesIndex:g};e=C(e);d.fillStyle=e;var e=[],h=0,l,r,m,q=[],n=[];if(0<p.length){color=k._colorSet[h%k._colorSet.length];c.fillStyle=color;c.strokeStyle=
+color;for(c.lineWidth=k.lineThickness;h<p.length;h++)if(l=p[h].x.getTime?p[h].x.getTime():p[h].x,!(l<a.axisX.dataInfo.viewPortMin||l>a.axisX.dataInfo.viewPortMax))if(null!==p[h].y&&p[h].y.length&&"number"===typeof p[h].y[0]&&"number"===typeof p[h].y[1]){l=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(l-a.axisX.conversionParameters.minimum)+0.5<<0;r=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(p[h].y[0]-a.axisY.conversionParameters.minimum)+
+0.5<<0;m=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(p[h].y[1]-a.axisY.conversionParameters.minimum)+0.5<<0;var s=k.dataPointIds[h];this._eventManager.objectMap[s]={id:s,objectType:"dataPoint",dataSeriesIndex:g,dataPointIndex:h,x1:l,y1:r,y2:m};q[q.length]={x:l,y:r};n[n.length]={x:l,y:m};if(0!==p[h].markerSize&&(0<p[h].markerSize||0<k.markerSize)){var v=k.getMarkerProperties(h,l,r,c);e.push(v);var u=C(s);t&&e.push({x:l,y:r,ctx:d,type:v.type,size:v.size,color:u,
+borderColor:u,borderThickness:v.borderThickness});v=k.getMarkerProperties(h,l,m,c);e.push(v);u=C(s);t&&e.push({x:l,y:m,ctx:d,type:v.type,size:v.size,color:u,borderColor:u,borderThickness:v.borderThickness})}if(p[h].indexLabel||k.indexLabel)this._indexLabels.push({chartType:"splineArea",dataPoint:p[h],dataSeries:k,indexKeyword:0,point:{x:l,y:r},direction:p[h].y[0]<=p[h].y[1]?-1:1,color:color}),this._indexLabels.push({chartType:"splineArea",dataPoint:p[h],dataSeries:k,indexKeyword:1,point:{x:l,y:m},
+direction:p[h].y[0]<=p[h].y[1]?1:-1,color:color})}else 0<h&&(b(),q=[],n=[]);b();J.drawMarkers(e)}}c.restore();t&&this._eventManager.ghostCtx.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:y.xClipAnimation,easingFunction:y.easing.linear,animationBase:0}}};var pa=function(a,b,c,d,e,f,g,k){"undefined"===typeof k&&(k=1);if(!t){var p=Number((g%(2*Math.PI)).toFixed(8));Number((f%(2*Math.PI)).toFixed(8))===p&&(g-=1E-4)}a.save();a.globalAlpha=k;"pie"===e?(a.beginPath(),a.moveTo(b.x,b.y),
+a.arc(b.x,b.y,c,f,g,!1),a.fillStyle=d,a.strokeStyle="white",a.lineWidth=2,a.closePath(),a.fill()):"doughnut"===e&&(a.beginPath(),a.arc(b.x,b.y,c,f,g,!1),a.arc(b.x,b.y,0.6*c,g,f,!0),a.closePath(),a.fillStyle=d,a.strokeStyle="white",a.lineWidth=2,a.fill());a.globalAlpha=1;a.restore()};v.prototype.renderPie=function(a){function b(){if(h&&l){var a=0,b=0,c=0,d=0;for(A=0;A<l.length;A++){var e=l[A],g=h.dataPointIds[A],f={id:g,objectType:"dataPoint",dataPointIndex:A,dataSeriesIndex:0};n.push(f);var k=e.indexLabel?
+e.indexLabel:h.indexLabel?h.indexLabel:e.label?e.label:h.label?h.label:"";p._eventManager.objectMap[g]=f;f.center={x:w.x,y:w.y};f.y=e.y;f.radius=y;f.indexLabelText=p.replaceKeywordsWithValue(k,e,h,A);f.indexLabelPlacement=h.indexLabelPlacement;f.indexLabelLineColor=e.indexLabelLineColor?e.indexLabelLineColor:h.indexLabelLineColor?h.indexLabelLineColor:e.color?e.color:h._colorSet[A%h._colorSet.length];f.indexLabelLineThickness=e.indexLabelLineThickness?e.indexLabelLineThickness:h.indexLabelLineThickness;
+f.indexLabelFontColor=e.indexLabelFontColor?e.indexLabelFontColor:h.indexLabelFontColor;f.indexLabelFontStyle=e.indexLabelFontStyle?e.indexLabelFontStyle:h.indexLabelFontStyle;f.indexLabelFontWeight=e.indexLabelFontWeight?e.indexLabelFontWeight:h.indexLabelFontWeight;f.indexLabelFontSize=e.indexLabelFontSize?e.indexLabelFontSize:h.indexLabelFontSize;f.indexLabelFontFamily=e.indexLabelFontFamily?e.indexLabelFontFamily:h.indexLabelFontFamily;f.indexLabelBackgroundColor=e.indexLabelBackgroundColor?e.indexLabelBackgroundColor:
+h.indexLabelBackgroundColor?h.indexLabelBackgroundColor:null;f.indexLabelMaxWidth=e.indexLabelMaxWidth?e.indexLabelMaxWidth:h.indexLabelMaxWidth?h.indexLabelMaxWidth:0.33*m.width;f.indexLabelWrap="undefined"!==typeof e.indexLabelWrap?e.indexLabelWrap:h.indexLabelWrap;f.startAngle=0===A?h.startAngle?h.startAngle/180*Math.PI:0:n[A-1].endAngle;f.startAngle=(f.startAngle+2*Math.PI)%(2*Math.PI);f.endAngle=f.startAngle+2*Math.PI/C*Math.abs(e.y);e=(f.endAngle+f.startAngle)/2;e=(e+2*Math.PI)%(2*Math.PI);
+f.midAngle=e;if(f.midAngle>Math.PI/2-u&&f.midAngle<Math.PI/2+u){if(0===a||n[c].midAngle>f.midAngle)c=A;a++}else if(f.midAngle>3*Math.PI/2-u&&f.midAngle<3*Math.PI/2+u){if(0===b||n[d].midAngle>f.midAngle)d=A;b++}f.hemisphere=e>Math.PI/2&&e<=3*Math.PI/2?"left":"right";f.indexLabelTextBlock=new I(p.plotArea.ctx,{fontSize:f.indexLabelFontSize,fontFamily:f.indexLabelFontFamily,fontColor:f.indexLabelFontColor,fontStyle:f.indexLabelFontStyle,fontWeight:f.indexLabelFontWeight,horizontalAlign:"left",backgroundColor:f.indexLabelBackgroundColor,
+maxWidth:f.indexLabelMaxWidth,maxHeight:f.indexLabelWrap?5*f.indexLabelFontSize:1.5*f.indexLabelFontSize,text:f.indexLabelText,padding:0,textBaseline:"top"});f.indexLabelTextBlock.measureText()}g=e=0;k=!1;for(A=0;A<l.length;A++)f=n[(c+A)%l.length],1<a&&(f.midAngle>Math.PI/2-u&&f.midAngle<Math.PI/2+u)&&(e<=a/2&&!k?(f.hemisphere="right",e++):(f.hemisphere="left",k=!0));k=!1;for(A=0;A<l.length;A++)f=n[(d+A)%l.length],1<b&&(f.midAngle>3*Math.PI/2-u&&f.midAngle<3*Math.PI/2+u)&&(g<=b/2&&!k?(f.hemisphere=
+"left",g++):(f.hemisphere="right",k=!0))}}function c(a){var b=p.plotArea.ctx;b.clearRect(m.x1,m.y1,m.width,m.height);b.fillStyle=p.backgroundColor;b.fillRect(m.x1,m.y1,m.width,m.height);for(b=0;b<l.length;b++){var c=n[b].startAngle,d=n[b].endAngle;if(d>c){var e=0.07*y*Math.cos(n[b].midAngle),f=0.07*y*Math.sin(n[b].midAngle),g=!1;if(l[b].exploded){if(1E-9<Math.abs(n[b].center.x-(w.x+e))||1E-9<Math.abs(n[b].center.y-(w.y+f)))n[b].center.x=w.x+e*a,n[b].center.y=w.y+f*a,g=!0}else if(0<Math.abs(n[b].center.x-
+w.x)||0<Math.abs(n[b].center.y-w.y))n[b].center.x=w.x+e*(1-a),n[b].center.y=w.y+f*(1-a),g=!0;g&&(e={},e.dataSeries=h,e.dataPoint=h.dataPoints[b],e.index=b,p._toolTip.highlightObjects([e]));pa(p.plotArea.ctx,n[b].center,n[b].radius,l[b].color?l[b].color:h._colorSet[b%h._colorSet.length],h.type,c,d,h.fillOpacity)}}a=p.plotArea.ctx;a.fillStyle="black";a.strokeStyle="grey";a.textBaseline="middle";a.lineJoin="round";for(b=b=0;b<l.length;b++)c=n[b],c.indexLabelText&&(c.indexLabelTextBlock.y-=c.indexLabelTextBlock.height/
+2,d=0,d="left"===c.hemisphere?"inside"!==h.indexLabelPlacement?-(c.indexLabelTextBlock.width+r):-c.indexLabelTextBlock.width/2:"inside"!==h.indexLabelPlacement?r:-c.indexLabelTextBlock.width/2,c.indexLabelTextBlock.x+=d,c.indexLabelTextBlock.render(!0),c.indexLabelTextBlock.x-=d,c.indexLabelTextBlock.y+=c.indexLabelTextBlock.height/2,"inside"!==c.indexLabelPlacement&&(d=c.center.x+y*Math.cos(c.midAngle),e=c.center.y+y*Math.sin(c.midAngle),a.strokeStyle=c.indexLabelLineColor,a.lineWidth=c.indexLabelLineThickness,
+a.beginPath(),a.moveTo(d,e),a.lineTo(c.indexLabelTextBlock.x,c.indexLabelTextBlock.y),a.lineTo(c.indexLabelTextBlock.x+("left"===c.hemisphere?-r:r),c.indexLabelTextBlock.y),a.stroke()),a.lineJoin="miter")}function d(a,b){var c=a.indexLabelTextBlock.x,d=a.indexLabelTextBlock.y-a.indexLabelTextBlock.height/2,e=a.indexLabelTextBlock.y+a.indexLabelTextBlock.height/2,f=b.indexLabelTextBlock.y-b.indexLabelTextBlock.height/2,g=b.indexLabelTextBlock.x+b.indexLabelTextBlock.width,l=b.indexLabelTextBlock.y+
+b.indexLabelTextBlock.height/2;return a.indexLabelTextBlock.x+a.indexLabelTextBlock.width<b.indexLabelTextBlock.x-r||c>g+r||d>l+r||e<f-r?!1:!0}function e(a,b){var c=0,c=a.indexLabelTextBlock.y-a.indexLabelTextBlock.height/2,d=a.indexLabelTextBlock.y+a.indexLabelTextBlock.height/2,e=b.indexLabelTextBlock.y-b.indexLabelTextBlock.height/2,f=b.indexLabelTextBlock.y+b.indexLabelTextBlock.height/2;return c=b.indexLabelTextBlock.y>a.indexLabelTextBlock.y?e-d:c-f}function f(a){for(var b=null,c=1;c<l.length;c++)if(b=
+(a+c+n.length)%n.length,n[b].hemisphere!==n[a].hemisphere){b=null;break}else if(n[b].indexLabelText&&b!==a&&(0>e(n[b],n[a])||("right"===n[a].hemisphere?n[b].indexLabelTextBlock.y>=n[a].indexLabelTextBlock.y:n[b].indexLabelTextBlock.y<=n[a].indexLabelTextBlock.y)))break;else b=null;return b}function g(a,b){b=b||0;var c=0,d=w.y-1*z,h=w.y+1*z;if(0<=a&&a<l.length){var m=n[a];if(0>b&&m.indexLabelTextBlock.y<d||0<b&&m.indexLabelTextBlock.y>h)return 0;var k=b,p=0,r=0,r=p=p=0;0>k?m.indexLabelTextBlock.y-
+m.indexLabelTextBlock.height/2>d&&m.indexLabelTextBlock.y-m.indexLabelTextBlock.height/2+k<d&&(k=-(d-(m.indexLabelTextBlock.y-m.indexLabelTextBlock.height/2+k))):m.indexLabelTextBlock.y+m.indexLabelTextBlock.height/2<d&&m.indexLabelTextBlock.y+m.indexLabelTextBlock.height/2+k>h&&(k=m.indexLabelTextBlock.y+m.indexLabelTextBlock.height/2+k-h);k=m.indexLabelTextBlock.y+k;d=0;d="right"===m.hemisphere?w.x+Math.sqrt(Math.pow(z,2)-Math.pow(k-w.y,2)):w.x-Math.sqrt(Math.pow(z,2)-Math.pow(k-w.y,2));r=w.x+y*
+Math.cos(m.midAngle);p=w.y+y*Math.sin(m.midAngle);p=Math.sqrt(Math.pow(d-r,2)+Math.pow(k-p,2));r=Math.acos(y/z);p=Math.acos((z*z+y*y-p*p)/(2*y*z));k=p<r?k-m.indexLabelTextBlock.y:0;d=null;for(h=1;h<l.length;h++)if(d=(a-h+n.length)%n.length,n[d].hemisphere!==n[a].hemisphere){d=null;break}else if(n[d].indexLabelText&&n[d].hemisphere===n[a].hemisphere&&d!==a&&(0>e(n[d],n[a])||("right"===n[a].hemisphere?n[d].indexLabelTextBlock.y<=n[a].indexLabelTextBlock.y:n[d].indexLabelTextBlock.y>=n[a].indexLabelTextBlock.y)))break;
+else d=null;r=d;p=f(a);h=d=0;0>k?(h="right"===m.hemisphere?r:p,c=k,null!==h&&(r=-k,k=m.indexLabelTextBlock.y-m.indexLabelTextBlock.height/2-(n[h].indexLabelTextBlock.y+n[h].indexLabelTextBlock.height/2),k-r<s&&(d=-r,q++,h=g(h,d),+h.toFixed(v)>+d.toFixed(v)&&(c=k>s?-(k-s):-(r-(h-d)))))):0<k&&(h="right"===m.hemisphere?p:r,c=k,null!==h&&(r=k,k=n[h].indexLabelTextBlock.y-n[h].indexLabelTextBlock.height/2-(m.indexLabelTextBlock.y+m.indexLabelTextBlock.height/2),k-r<s&&(d=r,q++,h=g(h,d),+h.toFixed(v)<+d.toFixed(v)&&
+(c=k>s?k-s:r-(d-h)))));c&&(k=m.indexLabelTextBlock.y+c,d=0,d="right"===m.hemisphere?w.x+Math.sqrt(Math.pow(z,2)-Math.pow(k-w.y,2)):w.x-Math.sqrt(Math.pow(z,2)-Math.pow(k-w.y,2)),m.midAngle>Math.PI/2-u&&m.midAngle<Math.PI/2+u?(h=(a-1+n.length)%n.length,h=n[h],r=n[(a+1+n.length)%n.length],"left"===m.hemisphere&&"right"===h.hemisphere&&d>h.indexLabelTextBlock.x?d=h.indexLabelTextBlock.x-15:"right"===m.hemisphere&&("left"===r.hemisphere&&d<r.indexLabelTextBlock.x)&&(d=r.indexLabelTextBlock.x+15)):m.midAngle>
+3*Math.PI/2-u&&m.midAngle<3*Math.PI/2+u&&(h=(a-1+n.length)%n.length,h=n[h],r=n[(a+1+n.length)%n.length],"right"===m.hemisphere&&"left"===h.hemisphere&&d<h.indexLabelTextBlock.x?d=h.indexLabelTextBlock.x+15:"left"===m.hemisphere&&("right"===r.hemisphere&&d>r.indexLabelTextBlock.x)&&(d=r.indexLabelTextBlock.x-15)),m.indexLabelTextBlock.y=k,m.indexLabelTextBlock.x=d,m.indexLabelAngle=Math.atan2(m.indexLabelTextBlock.y-w.y,m.indexLabelTextBlock.x-w.x))}return c}function k(){var a=p.plotArea.ctx;a.fillStyle=
+"grey";a.strokeStyle="grey";a.font="16px Arial";a.textBaseline="middle";for(var b=0,c=a=0,a=0;10>a&&(1>a||0<c);a++){y-=c;c=0;if("inside"!==h.indexLabelPlacement){z=y*t;for(b=0;b<l.length;b++){var k=n[b];k.indexLabelTextBlock.x=w.x+z*Math.cos(k.midAngle);k.indexLabelTextBlock.y=w.y+z*Math.sin(k.midAngle);k.indexLabelAngle=k.midAngle;k.radius=y}for(var q,u,b=0;b<l.length;b++){var k=n[b],A=f(b);if(null!==A){q=n[b];u=n[A];var D=0,D=e(q,u)-s;if(0>D){for(var C=u=q=0;C<l.length;C++)C!==b&&n[C].hemisphere===
+k.hemisphere&&(n[C].indexLabelTextBlock.y<k.indexLabelTextBlock.y?q++:u++);C=D/(q+u||1)*u;q=-1*(D-C);var E=u=0;"right"===k.hemisphere?(u=g(b,C),q=-1*(D-u),E=g(A,q),+E.toFixed(v)<+q.toFixed(v)&&+u.toFixed(v)<=+C.toFixed(v)&&g(b,-(q-E))):(u=g(A,C),q=-1*(D-u),E=g(b,q),+E.toFixed(v)<+q.toFixed(v)&&+u.toFixed(v)<=+C.toFixed(v)&&g(A,-(q-E)))}}}}else for(b=0;b<l.length;b++)k=n[b],z="pie"===h.type?0.7*y:0.8*y,D=w.x+z*Math.cos(k.midAngle),C=w.y+z*Math.sin(k.midAngle),k.indexLabelTextBlock.x=D,k.indexLabelTextBlock.y=
+C;for(b=0;b<l.length;b++)k=n[b],D=k.indexLabelTextBlock.measureText(),0!==D.height&&0!==D.width&&(D=D=0,"right"===k.hemisphere?(D=m.x2-(k.indexLabelTextBlock.x+k.indexLabelTextBlock.width+r),D*=-1):D=m.x1-(k.indexLabelTextBlock.x-k.indexLabelTextBlock.width-r),0<D&&(Math.abs(k.indexLabelTextBlock.y-k.indexLabelTextBlock.height/2-w.y)<y||Math.abs(k.indexLabelTextBlock.y+k.indexLabelTextBlock.height/2-w.y)<y)&&(D/=Math.abs(Math.cos(k.indexLabelAngle)),9<D&&(D*=0.3),D>c&&(c=D)),D=D=0,0<k.indexLabelAngle&&
+k.indexLabelAngle<Math.PI?(D=m.y2-(k.indexLabelTextBlock.y+k.indexLabelTextBlock.height/2+5),D*=-1):D=m.y1-(k.indexLabelTextBlock.y-k.indexLabelTextBlock.height/2-5),0<D&&Math.abs(k.indexLabelTextBlock.x-w.x)<y&&(D/=Math.abs(Math.sin(k.indexLabelAngle)),9<D&&(D*=0.3),D>c&&(c=D)));b=function(a,b,c){for(var d=[],e=0;d.push(n[b]),b!==c;b=(b+1+l.length)%l.length);d.sort(function(a,b){return a.y-b.y});for(b=0;b<d.length;b++)if(c=d[b],e<a)e+=c.indexLabelTextBlock.height,c.indexLabelTextBlock.text="",c.indexLabelText=
+"",c.indexLabelTextBlock.measureText();else break};A=k=-1;for(C=E=0;C<l.length;C++)if(q=n[C],q.indexLabelText){var F=f(C);null!==F&&(u=n[F],D=0,D=e(q,u),0>D&&d(q,u)?(0>k&&(k=C),F!==k&&(A=F),E+=-D):0<E&&(b(E,k,A),A=k=-1,E=0))}0<E&&b(E,k,A)}}var p=this;if(!(0>=a.dataSeriesIndexes.length)){for(var h=this.data[a.dataSeriesIndexes[0]],l=h.dataPoints,r=10,m=this.plotArea,q=0,n=[],s=2,t=1.3,u=20/180*Math.PI,v=6,w={x:(m.x2+m.x1)/2,y:(m.y2+m.y1)/2},y="inside"===h.indexLabelPlacement?0.92*Math.min(m.width,
+m.height)/2:0.8*Math.min(m.width,m.height)/2,z=y*t,C=0,A=0;A<l.length;A++)C+=Math.abs(l[A].y);0!==C&&(this.pieDoughnutClickHandler=function(a){p.isAnimating||(a=a.dataPoint,a.exploded=a.exploded?!1:!0,1<this.dataPoints.length&&p._animator.animate(0,500,function(a){c(a)}))},b(),k(),this.disableToolTip=!0,this._animator.animate(0,this.animatedRender?this.animationDuration:0,function(a){var b=p.plotArea.ctx;b.clearRect(m.x1,m.y1,m.width,m.height);b.fillStyle=p.backgroundColor;b.fillRect(m.x1,m.y1,m.width,
+m.height);a=n[0].startAngle+2*Math.PI*a;for(b=0;b<l.length;b++){var c=0===b?n[b].startAngle:d,d=c+(n[b].endAngle-n[b].startAngle),e=!1;d>a&&(d=a,e=!0);var f=l[b].color?l[b].color:h._colorSet[b%h._colorSet.length];d>c&&pa(p.plotArea.ctx,n[b].center,n[b].radius,f,h.type,c,d,h.fillOpacity);if(e)break}},function(){p.disableToolTip=!1;p._animator.animate(0,p.animatedRender?500:0,function(a){c(a)})}))}};v.prototype.animationRequestId=null;v.prototype.requestAnimFrame=function(){return window.requestAnimationFrame||
+window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,1E3/60)}}();v.prototype.cancelRequestAnimFrame=window.cancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout;aa.prototype.registerSpace=function(a,b){"top"===a?this._topOccupied+=b.height:"bottom"===a?
+this._bottomOccupied+=b.height:"left"===a?this._leftOccupied+=b.width:"right"===a&&(this._rightOccupied+=b.width)};aa.prototype.unRegisterSpace=function(a,b){"top"===a?this._topOccupied-=b.height:"bottom"===a?this._bottomOccupied-=b.height:"left"===a?this._leftOccupied-=b.width:"right"===a&&(this._rightOccupied-=b.width)};aa.prototype.getFreeSpace=function(){return{x1:this._leftOccupied,y1:this._topOccupied,x2:this.chart.width-this._rightOccupied,y2:this.chart.height-this._bottomOccupied,width:this.chart.width-
+this._rightOccupied-this._leftOccupied,height:this.chart.height-this._bottomOccupied-this._topOccupied}};aa.prototype.reset=function(){this._topOccupied=0;this._bottomOccupied=3;this._rightOccupied=this._leftOccupied=0};O(I,L);I.prototype.render=function(a){a&&this.ctx.save();var b=this.ctx.font;this.ctx.textBaseline=this.textBaseline;var c=0;this._isDirty&&this.measureText(this.ctx);this.ctx.translate(this.x,this.y+c);"middle"===this.textBaseline&&(c=-this._lineHeight/2);this.ctx.font=this._getFontString();
+this.ctx.rotate(Math.PI/180*this.angle);var d=0,e=this.padding,f=null;(0<this.borderThickness&&this.borderColor||this.backgroundColor)&&this.ctx.roundRect(0,c,this.width,this.height,this.cornerRadius,this.borderThickness,this.backgroundColor,this.borderColor);this.ctx.fillStyle=this.fontColor;for(c=0;c<this._wrappedText.lines.length;c++)f=this._wrappedText.lines[c],"right"===this.horizontalAlign?d=this.width-f.width-this.padding:"left"===this.horizontalAlign?d=this.padding:"center"===this.horizontalAlign&&
+(d=(this.width-2*this.padding)/2-f.width/2+this.padding),this.ctx.fillText(f.text,d,e),e+=f.height;this.ctx.font=b;a&&this.ctx.restore()};I.prototype.setText=function(a){this.text=a;this._isDirty=!0;this._wrappedText=null};I.prototype.measureText=function(){if(null===this.maxWidth)throw"Please set maxWidth and height for TextBlock";this._wrapText(this.ctx);this._isDirty=!1;return{width:this.width,height:this.height}};I.prototype._getLineWithWidth=function(a,b,c){a=String(a);if(!a)return{text:"",width:0};
+var d=c=0,e=a.length-1,f=Infinity;for(this.ctx.font=this._getFontString();d<=e;){var f=Math.floor((d+e)/2),g=a.substr(0,f+1);c=this.ctx.measureText(g).width;if(c<b)d=f+1;else if(c>b)e=f-1;else break}c>b&&1<g.length&&(g=g.substr(0,g.length-1),c=this.ctx.measureText(g).width);b=!0;if(g.length===a.length||" "===a[g.length])b=!1;b&&(a=g.split(" "),1<a.length&&a.pop(),g=a.join(" "),c=this.ctx.measureText(g).width);return{text:g,width:c}};I.prototype._wrapText=function(){var a=new String(Z(this.text)),
+b=[],c=this.ctx.font,d=0,e=0;for(this.ctx.font=this._getFontString();0<a.length;){var f=this.maxHeight-2*this.padding,g=this._getLineWithWidth(a,this.maxWidth-2*this.padding,!1);g.height=this._lineHeight;b.push(g);e=Math.max(e,g.width);d+=g.height;a=Z(a.slice(g.text.length,a.length));f&&d>f&&(g=b.pop(),d-=g.height)}this._wrappedText={lines:b,width:e,height:d};this.width=e+2*this.padding;this.height=d+2*this.padding;this.ctx.font=c};I.prototype._getFontString=function(){return ua("",this,null)};O(ba,
+L);ba.prototype.render=function(){if(this.text){var a=this.chart.layoutManager.getFreeSpace(),b=0,c=0,d=0,e=0,f=0,g,k;"top"===this.verticalAlign||"bottom"===this.verticalAlign?(e=a.width-2*this.margin,f=0.5*a.height-2*this.margin,d=0):"center"===this.verticalAlign&&("left"===this.horizontalAlign||"right"===this.horizontalAlign?(e=a.height-2*this.margin,f=0.5*a.width-2*this.margin):"center"===this.horizontalAlign&&(e=a.width-2*this.margin,f=0.5*a.height-2*this.margin));var f=new I(this.ctx,{fontSize:this.fontSize,
+fontFamily:this.fontFamily,fontColor:this.fontColor,fontStyle:this.fontStyle,fontWeight:this.fontWeight,horizontalAlign:this.horizontalAlign,verticalAlign:this.verticalAlign,borderColor:this.borderColor,borderThickness:this.borderThickness,backgroundColor:this.backgroundColor,maxWidth:e,maxHeight:f,cornerRadius:this.cornerRadius,text:this.text,padding:this.padding,textBaseline:"top"}),p=f.measureText();"top"===this.verticalAlign||"bottom"===this.verticalAlign?("top"===this.verticalAlign?(c=this.margin,
+k="top"):"bottom"===this.verticalAlign&&(c=a.y2-this.margin-p.height,k="bottom"),"left"===this.horizontalAlign?b=a.x1+this.margin:"center"===this.horizontalAlign?b=a.x1+(e/2-p.width/2)+this.margin:"right"===this.horizontalAlign&&(b=a.x2-this.margin-p.width),g=this.horizontalAlign,this.width=p.width,this.height=p.height):"center"===this.verticalAlign&&("left"===this.horizontalAlign?(b=a.x1+this.margin,c=a.y2-this.margin-(e/2-p.width/2),d=-90,k="left",this.width=p.height,this.height=p.width):"right"===
+this.horizontalAlign?(b=a.x2-this.margin,c=a.y1+this.margin+(e/2-p.width/2),d=90,k="right",this.width=p.height,this.height=p.width):"center"===this.horizontalAlign&&(c=a.y1+(a.height/2-p.height/2),b=a.x1+(a.width/2-p.width/2),k="center",this.width=p.width,this.height=p.height),g="center");f.x=b;f.y=c;f.angle=d;f.horizontalAlign=g;f.render(!0);this.chart.layoutManager.registerSpace(k,{width:this.width+2*this.margin,height:this.height+2*this.margin});this.bounds={x1:b,y1:c,x2:b+this.width,y2:c+this.height};
+this.ctx.textBaseline="top"}};O(ga,L);ga.prototype.render=function(){var a=this.chart.layoutManager.getFreeSpace(),b=null,c=0,d=0,e=0,f=0,g=[],k=[];"top"===this.verticalAlign||"bottom"===this.verticalAlign?(this.orientation="horizontal",b=this.verticalAlign,e=0.9*a.width,f=0.5*a.height):"center"===this.verticalAlign&&(this.orientation="vertical",b=this.horizontalAlign,e=0.5*a.width,f=0.9*a.height);for(var p=0;p<this.dataSeries.length;p++){var h=this.dataSeries[p],l=h.legendMarkerType?h.legendMarkerType:
+"line"!==h.type&&"stepLine"!==h.type&&"spline"!==h.type&&"scatter"!==h.type&&"bubble"!==h.type||!h.markerType?P.getDefaultLegendMarker(h.type):h.markerType,r=h.legendText?h.legendText:h.name,m=h.legendMarkerColor?h.legendMarkerColor:h.markerColor?h.markerColor:h._colorSet[0],q=h.markerSize||"line"!==h.type&&"stepLine"!==h.type&&"spline"!==h.type?0.6*this.lineHeight:0,n=h.legendMarkerBorderColor?h.legendMarkerBorderColor:h.markerBorderColor,s=h.legendMarkerBorderThickness?h.legendMarkerBorderThickness:
+h.markerBorderThickness?Math.max(1,Math.round(0.2*q)):0;if("pie"!==h.type&&"doughnut"!==h.type&&"funnel"!==h.type)l={markerType:l,markerColor:m,text:r,textBlock:null,chartType:h.type,markerSize:q,lineColor:h._colorSet[0],dataSeriesIndex:h.index,dataPointIndex:null,markerBorderColor:n,markerBorderThickness:s},g.push(l);else for(var t=0;t<h.dataPoints.length;t++)s=h.dataPoints[t],l=s.legendMarkerType?s.legendMarkerType:h.legendMarkerType?h.legendMarkerType:P.getDefaultLegendMarker(h.type),r=s.legendText?
+s.legendText:h.legendText?h.legendText:s.name?s.name:"DataPoint: "+(t+1),m=s.legendMarkerColor?s.legendMarkerColor:h.legendMarkerColor?h.legendMarkerColor:s.color?s.color:h.color?h.color:h._colorSet[t%h._colorSet.length],q=0===s.markerSize||0===h.markerSize&&!s.markerSize?0:0.6*this.lineHeight,n=s.legendMarkerBorderColor?s.legendMarkerBorderColor:h.legendMarkerBorderColor?h.legendMarkerBorderColor:s.markerBorderColor?s.markerBorderColor:h.markerBorderColor,s=s.legendMarkerBorderThickness?s.legendMarkerBorderThickness:
+h.legendMarkerBorderThickness?h.legendMarkerBorderThickness:s.markerBorderThickness||h.markerBorderThickness?Math.max(1,Math.round(0.2*q)):0,l={markerType:l,markerColor:m,text:r,textBlock:null,chartType:h.type,markerSize:q,dataSeriesIndex:p,dataPointIndex:t,markerBorderColor:n,markerBorderThickness:s},g.push(l)}if(0<g.length){h=null;for(p=t=0;p<g.length;p++){l=g[p];if("horizontal"===this.orientation){l.textBlock=new I(this.ctx,{x:0,y:0,maxWidth:e,maxHeight:this.lineHeight,angle:0,text:l.text,horizontalAlign:"left",
+fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"top"});l.textBlock.measureText();if(!h||h.width+l.textBlock.width+(0===h.width?0:this.horizontalSpacing)>e)h={items:[],width:0},k.push(h),this.height=k.length*(l.textBlock.height+5);l.textBlock.x=h.width;l.textBlock.y=0;h.width+=Math.round(l.textBlock.width+l.textBlock._lineHeight+(0===h.width?0:0.5*l.textBlock._lineHeight))}else this.height+this.lineHeight<
+f?(h={items:[],width:0},k.push(h),this.height=k.length*this.lineHeight):(h=k[t],t=(t+1)%k.length),l.textBlock=new I(this.ctx,{x:0,y:0,maxWidth:e,maxHeight:1.5*this.fontSize,angle:0,text:l.text,horizontalAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"top"}),l.textBlock.measureText(),l.textBlock.x=h.width,l.textBlock.y=0,h.width+=l.textBlock.width+l.textBlock._lineHeight+(0===h.width?0:0.5*l.textBlock._lineHeight);
+h.items.push(l);this.width=Math.max(h.width,this.width)}this.height=k.length*this.lineHeight}"top"===this.verticalAlign?(d="left"===this.horizontalAlign?a.x1+2:"right"===this.horizontalAlign?a.x2-this.width-2:a.x1+a.width/2-this.width/2,c=a.y1):"center"===this.verticalAlign?(d="left"===this.horizontalAlign?a.x1+2:"right"===this.horizontalAlign?a.x2-this.width-2:a.x1+a.width/2-this.width/2,c=a.y1+a.height/2-this.height/2):"bottom"===this.verticalAlign&&(d="left"===this.horizontalAlign?a.x1+2:"right"===
+this.horizontalAlign?a.x2-this.width-2:a.x1+a.width/2-this.width/2,c=a.y2-this.height-5);this.items=g;for(p=0;p<this.items.length;p++)l=g[p],l.id=++this.chart._eventManager.lastObjectId,this.chart._eventManager.objectMap[l.id]={id:l.id,objectType:"legendItem",legendItemIndex:p,dataSeriesIndex:l.dataSeriesIndex,dataPointIndex:l.dataPointIndex};for(p=0;p<k.length;p++)for(h=k[p],a=0;a<h.items.length;a++){l=h.items[a];f=l.textBlock.x+d+(0===a?0.2*l.markerSize:0.4*this.lineHeight+0.2*l.markerSize);g=c+
+p*this.lineHeight;e=f;this.chart.data[l.dataSeriesIndex].visible||(this.ctx.globalAlpha=0.5);if("line"===l.chartType||"stepLine"===l.chartType||"spline"===l.chartType)this.ctx.strokeStyle=l.lineColor,this.ctx.lineWidth=Math.ceil(this.lineHeight/8),this.ctx.beginPath(),this.ctx.moveTo(f-0.1*this.lineHeight,g+this.lineHeight/2),this.ctx.lineTo(f+0.7*this.lineHeight,g+this.lineHeight/2),this.ctx.stroke(),e-=0.1*this.lineHeight;J.drawMarker(f+l.markerSize/2,g+this.lineHeight/2,this.ctx,l.markerType,l.markerSize,
+l.markerColor,l.markerBorderColor,l.markerBorderThickness);l.textBlock.x=f+Math.round(0.9*this.lineHeight);l.textBlock.y=g;l.textBlock.render(!0);this.chart.data[l.dataSeriesIndex].visible||(this.ctx.globalAlpha=1);f=C(l.id);this.ghostCtx.fillStyle=f;this.ghostCtx.beginPath();this.ghostCtx.fillRect(e,l.textBlock.y,l.textBlock.x+l.textBlock.width-e,l.textBlock.height);l.x1=this.chart._eventManager.objectMap[l.id].x1=e;l.y1=this.chart._eventManager.objectMap[l.id].y1=l.textBlock.y;l.x2=this.chart._eventManager.objectMap[l.id].x2=
+l.textBlock.x+l.textBlock.width;l.y2=this.chart._eventManager.objectMap[l.id].y2=l.textBlock.y+l.textBlock.height}this.chart.layoutManager.registerSpace(b,{width:this.width+2+2,height:this.height+5+5});this.bounds={x1:d,y1:c,x2:d+this.width,y2:c+this.height}};O(la,L);la.prototype.render=function(){var a=this.chart.layoutManager.getFreeSpace();this.ctx.fillStyle="red";this.ctx.fillRect(a.x1,a.y1,a.x2,a.y2)};O(P,L);P.prototype.getDefaultAxisPlacement=function(){var a=this.type;if("column"===a||"line"===
+a||"stepLine"===a||"spline"===a||"area"===a||"stepArea"===a||"splineArea"===a||"stackedColumn"===a||"stackedLine"===a||"bubble"===a||"scatter"===a||"stackedArea"===a||"stackedColumn100"===a||"stackedLine100"===a||"stackedArea100"===a||"candlestick"===a||"ohlc"===a||"rangeColumn"===a||"rangeArea"===a||"rangeSplineArea"===a)return"normal";if("bar"===a||"stackedBar"===a||"stackedBar100"===a||"rangeBar"===a)return"xySwapped";if("pie"===a||"doughnut"===a||"funnel"===a)return"none";window.console.log("Unknown Chart Type: "+
+a);return null};P.getDefaultLegendMarker=function(a){if("column"===a||"stackedColumn"===a||"stackedLine"===a||"bar"===a||"stackedBar"===a||"stackedBar100"===a||"bubble"===a||"scatter"===a||"stackedColumn100"===a||"stackedLine100"===a||"stepArea"===a||"candlestick"===a||"ohlc"===a||"rangeColumn"===a||"rangeBar"===a||"rangeArea"===a||"rangeSplineArea"===a)return"square";if("line"===a||"stepLine"===a||"spline"===a||"pie"===a||"doughnut"===a||"funnel"===a)return"circle";if("area"===a||"splineArea"===
+a||"stackedArea"===a||"stackedArea100"===a)return"triangle";window.console.log("Unknown Chart Type: "+a);return null};P.prototype.getDataPointAtX=function(a,b){if(!this.dataPoints||0===this.dataPoints.length)return null;var c={dataPoint:null,distance:Infinity,index:NaN},d=null,e=0,f=0,g=1,k=Infinity,p=0,h=0,l=0;"none"!==this.chart.plotInfo.axisPlacement&&(l=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,l=0<l?Math.min(Math.max((this.dataPoints.length-1)/l*(a-this.dataPoints[0].x)>>
+0,0),this.dataPoints.length):0);for(;;){f=0<g?l+e:l-e;if(0<=f&&f<this.dataPoints.length){var d=this.dataPoints[f],r=Math.abs(d.x-a);r<c.distance&&(c.dataPoint=d,c.distance=r,c.index=f);d=Math.abs(d.x-a);d<=k?k=d:0<g?p++:h++;if(1E3<p&&1E3<h)break}else if(0>l-e&&l+e>=this.dataPoints.length)break;-1===g?(e++,g=1):g=-1}return b||c.dataPoint.x!==a?b&&null!==c.dataPoint?c:null:c};P.prototype.getDataPointAtXY=function(a,b,c){if(!this.dataPoints||0===this.dataPoints.length)return null;c=c||!1;var d=[],e=
+0,f=0,g=1,k=!1,p=Infinity,h=0,l=0,r=0;"none"!==this.chart.plotInfo.axisPlacement&&(r=this.chart.axisX.getXValueAt({x:a,y:b}),f=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,r=0<f?Math.min(Math.max((this.dataPoints.length-1)/f*(r-this.dataPoints[0].x)>>0,0),this.dataPoints.length):0);for(;;){f=0<g?r+e:r-e;if(0<=f&&f<this.dataPoints.length){var m=this.chart._eventManager.objectMap[this.dataPointIds[f]],q=this.dataPoints[f],n=null;if(m){switch(this.type){case "column":case "stackedColumn":case "stackedColumn100":case "bar":case "stackedBar":case "stackedBar100":case "rangeColumn":case "rangeBar":a>=
+m.x1&&(a<=m.x2&&b>=m.y1&&b<=m.y2)&&(d.push({dataPoint:q,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(m.x1-a),Math.abs(m.x2-a),Math.abs(m.y1-b),Math.abs(m.y2-b))}),k=!0);break;case "line":case "stepLine":case "spline":case "area":case "stepArea":case "stackedArea":case "stackedArea100":case "splineArea":case "scatter":var s=T("markerSize",q,this)||4,t=c?20:s,n=Math.sqrt(Math.pow(m.x1-a,2)+Math.pow(m.y1-b,2));n<=t&&d.push({dataPoint:q,dataPointIndex:f,dataSeries:this,distance:n});f=Math.abs(m.x1-
+a);f<=p?p=f:0<g?h++:l++;n<=s/2&&(k=!0);break;case "rangeArea":case "rangeSplineArea":s=T("markerSize",q,this)||4;t=c?20:s;n=Math.min(Math.sqrt(Math.pow(m.x1-a,2)+Math.pow(m.y1-b,2)),Math.sqrt(Math.pow(m.x1-a,2)+Math.pow(m.y2-b,2)));n<=t&&d.push({dataPoint:q,dataPointIndex:f,dataSeries:this,distance:n});f=Math.abs(m.x1-a);f<=p?p=f:0<g?h++:l++;n<=s/2&&(k=!0);break;case "bubble":s=m.size;n=Math.sqrt(Math.pow(m.x1-a,2)+Math.pow(m.y1-b,2));n<=s/2&&(d.push({dataPoint:q,dataPointIndex:f,dataSeries:this,
+distance:n}),k=!0);break;case "pie":case "doughnut":s=m.center;t="doughnut"===this.type?0.6*m.radius:0;n=Math.sqrt(Math.pow(s.x-a,2)+Math.pow(s.y-b,2));n<m.radius&&n>t&&(n=Math.atan2(b-s.y,a-s.x),0>n&&(n+=2*Math.PI),n=Number(((180*(n/Math.PI)%360+360)%360).toFixed(12)),s=Number(((180*(m.startAngle/Math.PI)%360+360)%360).toFixed(12)),t=Number(((180*(m.endAngle/Math.PI)%360+360)%360).toFixed(12)),0===t&&1<m.endAngle&&(t=360),s>=t&&0!==q.y&&(t+=360,n<s&&(n+=360)),n>s&&n<t&&(d.push({dataPoint:q,dataPointIndex:f,
+dataSeries:this,distance:0}),k=!0));break;case "candlestick":if(a>=m.x1-m.borderThickness/2&&a<=m.x2+m.borderThickness/2&&b>=m.y2-m.borderThickness/2&&b<=m.y3+m.borderThickness/2||Math.abs(m.x2-a+m.x1-a)<m.borderThickness&&b>=m.y1&&b<=m.y4)d.push({dataPoint:q,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(m.x1-a),Math.abs(m.x2-a),Math.abs(m.y2-b),Math.abs(m.y3-b))}),k=!0;break;case "ohlc":if(Math.abs(m.x2-a+m.x1-a)<m.borderThickness&&b>=m.y2&&b<=m.y3||a>=m.x1&&a<=(m.x2+m.x1)/2&&b>=m.y1-
+m.borderThickness/2&&b<=m.y1+m.borderThickness/2||a>=(m.x1+m.x2)/2&&a<=m.x2&&b>=m.y4-m.borderThickness/2&&b<=m.y4+m.borderThickness/2)d.push({dataPoint:q,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(m.x1-a),Math.abs(m.x2-a),Math.abs(m.y2-b),Math.abs(m.y3-b))}),k=!0}if(k||1E3<h&&1E3<l)break}}else if(0>r-e&&r+e>=this.dataPoints.length)break;-1===g?(e++,g=1):g=-1}a=null;for(b=0;b<d.length;b++)a?d[b].distance<=a.distance&&(a=d[b]):a=d[b];return a};P.prototype.getMarkerProperties=function(a,
+b,c,d){var e=this.dataPoints;return{x:b,y:c,ctx:d,type:e[a].markerType?e[a].markerType:this.markerType,size:e[a].markerSize?e[a].markerSize:this.markerSize,color:e[a].markerColor?e[a].markerColor:this.markerColor?this.markerColor:e[a].color?e[a].color:this.color?this.color:this._colorSet[a%this._colorSet.length],borderColor:e[a].markerBorderColor?e[a].markerBorderColor:this.markerBorderColor?this.markerBorderColor:null,borderThickness:e[a].markerBorderThickness?e[a].markerBorderThickness:this.markerBorderThickness?
+this.markerBorderThickness:null}};O(A,L);A.prototype.createLabels=function(){var a,b=0,c,d=0,e=0,b=0;if("bottom"===this._position||"top"===this._position)b=this.lineCoordinates.width/Math.abs(this.maximum-this.minimum)*this.interval,d=this.labelAutoFit?"undefined"===typeof this._options.labelMaxWidth?0.9*b>>0:this.labelMaxWidth:"undefined"===typeof this._options.labelMaxWidth?0.7*this.chart.width>>0:this.labelMaxWidth,e="undefined"===typeof this._options.labelWrap||this.labelWrap?0.5*this.chart.height>>
+0:1.5*this.labelFontSize;else if("left"===this._position||"right"===this._position)b=this.lineCoordinates.height/Math.abs(this.maximum-this.minimum)*this.interval,d=this.labelAutoFit?"undefined"===typeof this._options.labelMaxWidth?0.3*this.chart.width>>0:this.labelMaxWidth:"undefined"===typeof this._options.labelMaxWidth?0.5*this.chart.width>>0:this.labelMaxWidth,e="undefined"===typeof this._options.labelWrap||this.labelWrap?2*b>>0:1.5*this.labelFontSize;if("axisX"===this.type&&"dateTime"===this.chart.plotInfo.axisXValueType)for(c=
+qa(new Date(this.maximum),this.interval,this.intervalType),b=this.intervalstartTimePercent;b<c;qa(b,this.interval,this.intervalType))a=b.getTime(),a="axisX"===this.type&&this.labels[a]?this.labels[a]:ya(b,this.valueFormatString,this.chart._cultureInfo),a=new I(this.ctx,{x:0,y:0,maxWidth:d,maxHeight:e,angle:this.labelAngle,text:this.prefix+a+this.suffix,horizontalAlign:"left",fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,
+textBaseline:"middle"}),this._labels.push({position:b.getTime(),textBlock:a,effectiveHeight:null});else{c=this.maximum;if(this.labels&&this.labels.length){a=Math.ceil(this.interval);for(var f=Math.ceil(this.intervalstartTimePercent),g=!1,b=f;b<this.maximum;b+=a)if(this.labels[b])g=!0;else{g=!1;break}g&&(this.interval=a,this.intervalstartTimePercent=f)}for(b=this.intervalstartTimePercent;b<=c;b=parseFloat((b+this.interval).toFixed(14)))a="axisX"===this.type&&this.labels[b]?this.labels[b]:X(b,this.valueFormatString,
+this.chart._cultureInfo),a=new I(this.ctx,{x:0,y:0,maxWidth:d,maxHeight:e,angle:this.labelAngle,text:this.prefix+a+this.suffix,horizontalAlign:"left",fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle",borderThickness:0}),this._labels.push({position:b,textBlock:a,effectiveHeight:null})}for(b=0;b<this.stripLines.length;b++)c=this.stripLines[b],a=new I(this.ctx,{x:0,y:0,backgroundColor:c.labelBackgroundColor,
+maxWidth:d,maxHeight:e,angle:this.labelAngle,text:c.label,horizontalAlign:"left",fontSize:c.labelFontSize,fontFamily:c.labelFontFamily,fontWeight:c.labelFontWeight,fontColor:c.labelFontColor,fontStyle:c.labelFontStyle,textBaseline:"middle",borderThickness:0}),this._labels.push({position:c.value,textBlock:a,effectiveHeight:null,stripLine:c})};A.prototype.createLabelsAndCalculateWidth=function(){var a=0;this._labels=[];if("left"===this._position||"right"===this._position)for(this.createLabels(),i=0;i<
+this._labels.length;i++){var b=this._labels[i].textBlock.measureText(),c=0,c=0===this.labelAngle?b.width:b.width*Math.cos(Math.PI/180*Math.abs(this.labelAngle))+b.height/2*Math.sin(Math.PI/180*Math.abs(this.labelAngle));a<c&&(a=c);this._labels[i].effectiveWidth=c}return(this.title?ca(this.titleFontFamily,this.titleFontSize,this.titleFontWeight)+2:0)+a+this.tickLength+5};A.prototype.createLabelsAndCalculateHeight=function(){var a=0;this._labels=[];var b,c=0;this.createLabels();if("bottom"===this._position||
+"top"===this._position)for(c=0;c<this._labels.length;c++){b=this._labels[c].textBlock;b=b.measureText();var d=0,d=0===this.labelAngle?b.height:b.width*Math.sin(Math.PI/180*Math.abs(this.labelAngle))+b.height/2*Math.cos(Math.PI/180*Math.abs(this.labelAngle));a<d&&(a=d);this._labels[c].effectiveHeight=d}return(this.title?ca(this.titleFontFamily,this.titleFontSize,this.titleFontWeight)+2:0)+a+this.tickLength+5};A.setLayoutAndRender=function(a,b,c,d,e){var f,g,k,p=a.chart,h=p.ctx;a.calculateAxisParameters();
+b&&b.calculateAxisParameters();c&&c.calculateAxisParameters();if(b&&c&&"undefined"===typeof b._options.maximum&&"undefined"===typeof b._options.minimum&&"undefined"===typeof b._options.interval&&"undefined"===typeof c._options.maximum&&"undefined"===typeof c._options.minimum&&"undefined"===typeof c._options.interval){k=(b.maximum-b.minimum)/b.interval;var l=(c.maximum-c.minimum)/c.interval;k>l?c.maximum=c.interval*k+c.minimum:l>k&&(b.maximum=b.interval*l+b.minimum)}l=b?b.margin:0;if("normal"===d){a.lineCoordinates=
+{};var r=Math.ceil(b?b.createLabelsAndCalculateWidth():0);f=Math.round(e.x1+r+l);a.lineCoordinates.x1=f;l=Math.ceil(c?c.createLabelsAndCalculateWidth():0);g=Math.round(e.x2-l>a.chart.width-10?a.chart.width-10:e.x2-l);a.lineCoordinates.x2=g;a.lineCoordinates.width=Math.abs(g-f);var m=Math.ceil(a.createLabelsAndCalculateHeight());d=Math.round(e.y2-m-a.margin);k=Math.round(e.y2-a.margin);a.lineCoordinates.y1=d;a.lineCoordinates.y2=d;a.boundingRect={x1:f,y1:d,x2:g,y2:k,width:g-f,height:k-d};b&&(f=Math.round(e.x1+
+b.margin),d=Math.round(10>e.y1?10:e.y1),g=Math.round(e.x1+r+b.margin),k=Math.round(e.y2-m-a.margin),b.lineCoordinates={x1:g,y1:d,x2:g,y2:k,height:Math.abs(k-d)},b.boundingRect={x1:f,y1:d,x2:g,y2:k,width:g-f,height:k-d});c&&(f=Math.round(a.lineCoordinates.x2),d=Math.round(10>e.y1?10:e.y1),g=Math.round(f+l+c.margin),k=Math.round(e.y2-m-a.margin),c.lineCoordinates={x1:f,y1:d,x2:f,y2:k,height:Math.abs(k-d)},c.boundingRect={x1:f,y1:d,x2:g,y2:k,width:g-f,height:k-d});a.calculateValueToPixelconversionParameters();
+b&&b.calculateValueToPixelconversionParameters();c&&c.calculateValueToPixelconversionParameters();h.save();h.rect(5,a.boundingRect.y1,a.chart.width-10,a.boundingRect.height);h.clip();a.renderLabelsTicksAndTitle();h.restore();b&&b.renderLabelsTicksAndTitle();c&&c.renderLabelsTicksAndTitle()}else{r=Math.ceil(a.createLabelsAndCalculateWidth());b&&(b.lineCoordinates={},f=Math.round(e.x1+r+a.margin),g=Math.round(e.x2>b.chart.width-10?b.chart.width-10:e.x2),b.lineCoordinates.x1=f,b.lineCoordinates.x2=g,
+b.lineCoordinates.width=Math.abs(g-f));c&&(c.lineCoordinates={},f=Math.round(e.x1+r+a.margin),g=Math.round(e.x2>c.chart.width-10?c.chart.width-10:e.x2),c.lineCoordinates.x1=f,c.lineCoordinates.x2=g,c.lineCoordinates.width=Math.abs(g-f));var m=Math.ceil(b?b.createLabelsAndCalculateHeight():0),q=Math.ceil(c?c.createLabelsAndCalculateHeight():0);b&&(d=Math.round(e.y2-m-b.margin),k=Math.round(e.y2-l>b.chart.height-10?b.chart.height-10:e.y2-l),b.lineCoordinates.y1=d,b.lineCoordinates.y2=d,b.boundingRect=
+{x1:f,y1:d,x2:g,y2:k,width:g-f,height:m});c&&(d=Math.round(e.y1+c.margin),k=e.y1+c.margin+q,c.lineCoordinates.y1=k,c.lineCoordinates.y2=k,c.boundingRect={x1:f,y1:d,x2:g,y2:k,width:g-f,height:q});f=Math.round(e.x1+a.margin);d=Math.round(c?c.lineCoordinates.y2:10>e.y1?10:e.y1);g=Math.round(e.x1+r+a.margin);k=Math.round(b?b.lineCoordinates.y1:e.y2-l>a.chart.height-10?a.chart.height-10:e.y2-l);a.lineCoordinates={x1:g,y1:d,x2:g,y2:k,height:Math.abs(k-d)};a.boundingRect={x1:f,y1:d,x2:g,y2:k,width:g-f,height:k-
+d};a.calculateValueToPixelconversionParameters();b&&b.calculateValueToPixelconversionParameters();c&&c.calculateValueToPixelconversionParameters();b&&b.renderLabelsTicksAndTitle();c&&c.renderLabelsTicksAndTitle();a.renderLabelsTicksAndTitle()}p.preparePlotArea();e=a.chart.plotArea;h.save();h.rect(e.x1,e.y1,Math.abs(e.x2-e.x1),Math.abs(e.y2-e.y1));h.clip();a.renderStripLinesOfThicknessType("value");b&&b.renderStripLinesOfThicknessType("value");c&&c.renderStripLinesOfThicknessType("value");a.renderInterlacedColors();
+b&&b.renderInterlacedColors();c&&c.renderInterlacedColors();h.restore();a.renderGrid();b&&b.renderGrid();c&&c.renderGrid();a.renderAxisLine();b&&b.renderAxisLine();c&&c.renderAxisLine();a.renderStripLinesOfThicknessType("pixel");b&&b.renderStripLinesOfThicknessType("pixel");c&&c.renderStripLinesOfThicknessType("pixel")};A.prototype.renderLabelsTicksAndTitle=function(){var a=!1,b=0,c=1,d=0;0!==this.labelAngle&&360!==this.labelAngle&&(c=1.2);if("undefined"===typeof this._options.interval){if("bottom"===
+this._position||"top"===this._position){for(e=0;e<this._labels.length;e++)f=this._labels[e],f.position<this.minimum||f.stripLine||(f=f.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)+f.textBlock.height*Math.sin(Math.PI/180*this.labelAngle),b+=f);b>this.lineCoordinates.width*c&&(a=!0)}if("left"===this._position||"right"===this._position){for(e=0;e<this._labels.length;e++)f=this._labels[e],f.position<this.minimum||f.stripLine||(f=f.textBlock.height*Math.cos(Math.PI/180*this.labelAngle)+f.textBlock.width*
+Math.sin(Math.PI/180*this.labelAngle),b+=f);b>this.lineCoordinates.height*c&&(a=!0)}}if("bottom"===this._position){for(var e=0,f,e=0;e<this._labels.length;e++)if(f=this._labels[e],!(f.position<this.minimum||f.position>this.maximum)){b=this.getPixelCoordinatesOnAxis(f.position);if(this.tickThickness&&!this._labels[e].stripLine||this._labels[e].stripLine&&"pixel"===this._labels[e].stripLine._thicknessType)this._labels[e].stripLine?(c=this._labels[e].stripLine,this.ctx.lineWidth=c.thickness,this.ctx.strokeStyle=
+c.color):(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor),c=1===this.ctx.lineWidth%2?(b.x<<0)+0.5:b.x<<0,this.ctx.beginPath(),this.ctx.moveTo(c,b.y<<0),this.ctx.lineTo(c,b.y+this.tickLength<<0),this.ctx.stroke();if(!a||0===d++%2||this._labels[e].stripLine)0===f.textBlock.angle?(b.x-=f.textBlock.width/2,b.y+=this.tickLength+f.textBlock.fontSize/2):(b.x-=0>this.labelAngle?f.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,b.y+=this.tickLength+Math.abs(0>this.labelAngle?
+f.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:5)),f.textBlock.x=b.x,f.textBlock.y=b.y,f.textBlock.render(!0)}this.title&&(this._titleTextBlock=new I(this.ctx,{x:this.lineCoordinates.x1,y:this.boundingRect.y2-this.titleFontSize-5,maxWidth:this.lineCoordinates.width,maxHeight:1.5*this.titleFontSize,angle:0,text:this.title,horizontalAlign:"center",fontSize:this.titleFontSize,fontFamily:this.titleFontFamily,fontWeight:this.titleFontWeight,fontColor:this.titleFontColor,fontStyle:this.titleFontStyle,
+textBaseline:"top"}),this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.boundingRect.y2-this._titleTextBlock.height-3,this._titleTextBlock.render(!0))}else if("top"===this._position){for(e=0;e<this._labels.length;e++)if(f=this._labels[e],!(f.position<this.minimum||f.position>this.maximum)){b=this.getPixelCoordinatesOnAxis(f.position);if(this.tickThickness&&!this._labels[e].stripLine||
+this._labels[e].stripLine&&"pixel"===this._labels[e].stripLine._thicknessType)this._labels[e].stripLine?(c=this._labels[e].stripLine,this.ctx.lineWidth=c.thickness,this.ctx.strokeStyle=c.color):(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor),c=1===this.ctx.lineWidth%2?(b.x<<0)+0.5:b.x<<0,this.ctx.beginPath(),this.ctx.moveTo(c,b.y<<0),this.ctx.lineTo(c,b.y-this.tickLength<<0),this.ctx.stroke();if(!a||0===d++%2||this._labels[e].stripLine)0===f.textBlock.angle?(b.x-=f.textBlock.width/
+2,b.y-=this.tickLength+f.textBlock.height/2):(b.x-=0<this.labelAngle?f.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,b.y-=this.tickLength+Math.abs(0<this.labelAngle?f.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)+5:5)),f.textBlock.x=b.x,f.textBlock.y=b.y,f.textBlock.render(!0)}this.title&&(this._titleTextBlock=new I(this.ctx,{x:this.lineCoordinates.x1,y:this.boundingRect.y1+1,maxWidth:this.lineCoordinates.width,maxHeight:1.5*this.titleFontSize,angle:0,text:this.title,horizontalAlign:"center",
+fontSize:this.titleFontSize,fontFamily:this.titleFontFamily,fontWeight:this.titleFontWeight,fontColor:this.titleFontColor,fontStyle:this.titleFontStyle,textBaseline:"top"}),this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.render(!0))}else if("left"===this._position){for(e=0;e<this._labels.length;e++)if(f=this._labels[e],!(f.position<this.minimum||f.position>this.maximum)){b=this.getPixelCoordinatesOnAxis(f.position);
+if(this.tickThickness&&!this._labels[e].stripLine||this._labels[e].stripLine&&"pixel"===this._labels[e].stripLine._thicknessType)this._labels[e].stripLine?(c=this._labels[e].stripLine,this.ctx.lineWidth=c.thickness,this.ctx.strokeStyle=c.color):(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor),c=1===this.ctx.lineWidth%2?(b.y<<0)+0.5:b.y<<0,this.ctx.beginPath(),this.ctx.moveTo(b.x<<0,c),this.ctx.lineTo(b.x-this.tickLength<<0,c),this.ctx.stroke();if(!a||0===d++%2||this._labels[e].stripLine)f.textBlock.x=
+b.x-f.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-this.tickLength-5,f.textBlock.y=0===this.labelAngle?b.y-f.textBlock.height/2+this.labelFontSize/2:b.y-f.textBlock.width*Math.sin(Math.PI/180*this.labelAngle),f.textBlock.render(!0)}this.title&&(this._titleTextBlock=new I(this.ctx,{x:this.boundingRect.x1+1,y:this.lineCoordinates.y2,maxWidth:this.lineCoordinates.height,maxHeight:1.5*this.titleFontSize,angle:-90,text:this.title,horizontalAlign:"center",fontSize:this.titleFontSize,fontFamily:this.titleFontFamily,
+fontWeight:this.titleFontWeight,fontColor:this.titleFontColor,fontStyle:this.titleFontStyle,textBaseline:"top"}),this._titleTextBlock.measureText(),this._titleTextBlock.y=this.lineCoordinates.height/2+this._titleTextBlock.width/2+this.lineCoordinates.y1,this._titleTextBlock.render(!0))}else if("right"===this._position){for(e=0;e<this._labels.length;e++)if(f=this._labels[e],!(f.position<this.minimum||f.position>this.maximum)){b=this.getPixelCoordinatesOnAxis(f.position);if(this.tickThickness&&!this._labels[e].stripLine||
+this._labels[e].stripLine&&"pixel"===this._labels[e].stripLine._thicknessType)this._labels[e].stripLine?(c=this._labels[e].stripLine,this.ctx.lineWidth=c.thickness,this.ctx.strokeStyle=c.color):(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor),c=1===this.ctx.lineWidth%2?(b.y<<0)+0.5:b.y<<0,this.ctx.beginPath(),this.ctx.moveTo(b.x<<0,c),this.ctx.lineTo(b.x+this.tickLength<<0,c),this.ctx.stroke();if(!a||0===d++%2||this._labels[e].stripLine)f.textBlock.x=b.x+this.tickLength+
+5,f.textBlock.y=0===this.labelAngle?b.y-f.textBlock.height/2+this.labelFontSize/2:b.y,f.textBlock.render(!0)}this.title&&(this._titleTextBlock=new I(this.ctx,{x:this.boundingRect.x2-1,y:this.lineCoordinates.y2,maxWidth:this.lineCoordinates.height,maxHeight:1.5*this.titleFontSize,angle:90,text:this.title,horizontalAlign:"center",fontSize:this.titleFontSize,fontFamily:this.titleFontFamily,fontWeight:this.titleFontWeight,fontColor:this.titleFontColor,fontStyle:this.titleFontStyle,textBaseline:"top"}),
+this._titleTextBlock.measureText(),this._titleTextBlock.y=this.lineCoordinates.height/2-this._titleTextBlock.width/2+this.lineCoordinates.y1,this._titleTextBlock.render(!0))}};A.prototype.renderInterlacedColors=function(){var a=this.chart.plotArea.ctx,b,c,d=this.chart.plotArea,e=0;b=!0;if(("bottom"===this._position||"top"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;e<this._labels.length;e++)this._labels[e].stripLine||(b?(b=this.getPixelCoordinatesOnAxis(this._labels[e].position),
+c=e+1>=this._labels.length?this.getPixelCoordinatesOnAxis(this.maximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(b.x,d.y1,Math.abs(c.x-b.x),Math.abs(d.y1-d.y2)),b=!1):b=!0);else if(("left"===this._position||"right"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;e<this._labels.length;e++)this._labels[e].stripLine||(b?(c=this.getPixelCoordinatesOnAxis(this._labels[e].position),b=e+1>=this._labels.length?this.getPixelCoordinatesOnAxis(this.maximum):
+this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(d.x1,b.y,Math.abs(d.x1-d.x2),Math.abs(b.y-c.y)),b=!1):b=!0);a.beginPath()};A.prototype.renderStripLinesOfThicknessType=function(a){if(this.stripLines&&0<this.stripLines.length&&a)for(var b=this.chart.plotArea.ctx,c=0,c=0;c<this.stripLines.length;c++){var d=this.stripLines[c];if(d._thicknessType===a&&("pixel"!==a||!(d.value<this.minimum||d.value>this.maximum))){var e=this.getPixelCoordinatesOnAxis(d.value),f=Math.abs("pixel"===a?
+d.thickness:this.conversionParameters.pixelPerUnit*d.thickness);if(!(0>=f)){b.strokeStyle=d.color;b.beginPath();C(d.id);var g,k,p,h;b.lineWidth=f;if("bottom"===this._position||"top"===this._position)g=k=1===b.lineWidth%2?(e.x<<0)+0.5:e.x<<0,p=this.chart.plotArea.y1,h=this.chart.plotArea.y2;else if("left"===this._position||"right"===this._position)p=h=1===b.lineWidth%2?(e.y<<0)+0.5:e.y<<0,g=this.chart.plotArea.x1,k=this.chart.plotArea.x2;b.moveTo(g,p);b.lineTo(k,h);b.stroke()}}}};A.prototype.renderGrid=
+function(){if(this.gridThickness&&0<this.gridThickness){var a=this.chart.ctx,b,c=this.chart.plotArea;a.lineWidth=this.gridThickness;a.strokeStyle=this.gridColor;if("bottom"===this._position||"top"===this._position)for(d=0;d<this._labels.length&&!this._labels[d].stripLine;d++)this._labels[d].position<this.minimum||this._labels[d].position>this.maximum||(a.beginPath(),b=this.getPixelCoordinatesOnAxis(this._labels[d].position),b=1===a.lineWidth%2?(b.x<<0)+0.5:b.x<<0,a.moveTo(b,c.y1<<0),a.lineTo(b,c.y2<<
+0),a.stroke());else if("left"===this._position||"right"===this._position)for(var d=0;d<this._labels.length&&!this._labels[d].stripLine;d++)this._labels[d].position<this.minimum||this._labels[d].position>this.maximum||(a.beginPath(),b=this.getPixelCoordinatesOnAxis(this._labels[d].position),b=1===a.lineWidth%2?(b.y<<0)+0.5:b.y<<0,a.moveTo(c.x1<<0,b),a.lineTo(c.x2<<0,b),a.stroke())}};A.prototype.renderAxisLine=function(){var a=this.chart.ctx;if("bottom"===this._position||"top"===this._position){if(this.lineThickness){a.lineWidth=
+this.lineThickness;a.strokeStyle=this.lineColor?this.lineColor:"black";var b=1===this.lineThickness%2?(this.lineCoordinates.y1<<0)+0.5:this.lineCoordinates.y1<<0;a.beginPath();a.moveTo(this.lineCoordinates.x1,b);a.lineTo(this.lineCoordinates.x2,b);a.stroke()}}else"left"!==this._position&&"right"!==this._position||!this.lineThickness||(a.lineWidth=this.lineThickness,a.strokeStyle=this.lineColor,b=1===this.lineThickness%2?(this.lineCoordinates.x1<<0)+0.5:this.lineCoordinates.x1<<0,a.beginPath(),a.moveTo(b,
+this.lineCoordinates.y1),a.lineTo(b,this.lineCoordinates.y2),a.stroke())};A.prototype.getPixelCoordinatesOnAxis=function(a){var b={},c=this.lineCoordinates.width,d=this.lineCoordinates.height;if("bottom"===this._position||"top"===this._position)c/=Math.abs(this.maximum-this.minimum),b.x=this.lineCoordinates.x1+c*(a-this.minimum),b.y=this.lineCoordinates.y1;if("left"===this._position||"right"===this._position)c=d/Math.abs(this.maximum-this.minimum),b.y=this.lineCoordinates.y2-c*(a-this.minimum),b.x=
+this.lineCoordinates.x2;return b};A.prototype.getXValueAt=function(a){if(!a)return null;var b=null;"left"===this._position?b=(this.chart.axisX.maximum-this.chart.axisX.minimum)/this.chart.axisX.lineCoordinates.height*(this.chart.axisX.lineCoordinates.y2-a.y)+this.chart.axisX.minimum:"bottom"===this._position&&(b=(this.chart.axisX.maximum-this.chart.axisX.minimum)/this.chart.axisX.lineCoordinates.width*(a.x-this.chart.axisX.lineCoordinates.x1)+this.chart.axisX.minimum);return b};A.prototype.calculateValueToPixelconversionParameters=
+function(a){a={pixelPerUnit:null,minimum:null,reference:null};var b=this.lineCoordinates.width,c=this.lineCoordinates.height;a.minimum=this.minimum;if("bottom"===this._position||"top"===this._position)a.pixelPerUnit=b/Math.abs(this.maximum-this.minimum),a.reference=this.lineCoordinates.x1;if("left"===this._position||"right"===this._position)a.pixelPerUnit=-1*c/Math.abs(this.maximum-this.minimum),a.reference=this.lineCoordinates.y2;this.conversionParameters=a};A.prototype.calculateAxisParameters=function(){var a=
+this.chart.layoutManager.getFreeSpace();"bottom"===this._position||"top"===this._position?(this.maxWidth=a.width,this.maxHeight=a.height):(this.maxWidth=a.height,this.maxHeight=a.width);var a="axisX"===this.type?500>this.maxWidth?8:Math.max(6,Math.floor(this.maxWidth/62)):Math.max(Math.floor(this.maxWidth/40),2),b,c,d,e;e=0;"axisX"===this.type?(b=null!==this.sessionVariables.internalMinimum?this.sessionVariables.internalMinimum:this.dataInfo.viewPortMin,c=null!==this.sessionVariables.internalMaximum?
+this.sessionVariables.internalMaximum:this.dataInfo.viewPortMax,0===c-b&&(c+=0.4,b-=0.4),d=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1<c-b?0.5*Math.abs(c-b):1):"axisY"===this.type&&(b="undefined"===typeof this._options.minimum?this.dataInfo.viewPortMin:this._options.minimum,c="undefined"===typeof this._options.maximum?this.dataInfo.viewPortMax:this._options.maximum,0===b&&0===c?(c+=9,b=0):0===c-b?(e=Math.min(Math.abs(0.01*Math.abs(c)),5),c+=e,b-=e):(e=Math.min(Math.abs(0.01*Math.abs(c-
+b)),0.05),0!==c&&(c+=e),0!==b&&(b-=e)),this.includeZero&&"undefined"===typeof this._options.minimum&&0<b&&(b=0),this.includeZero&&"undefined"===typeof this._options.maximum&&0>c&&(c=0));"axisX"===this.type&&"dateTime"===this.chart.plotInfo.axisXValueType?(e=c-b,this.intervalType||(e/1<=a?(this.interval=1,this.intervalType="millisecond"):e/2<=a?(this.interval=2,this.intervalType="millisecond"):e/5<=a?(this.interval=5,this.intervalType="millisecond"):e/10<=a?(this.interval=10,this.intervalType="millisecond"):
+e/20<=a?(this.interval=20,this.intervalType="millisecond"):e/50<=a?(this.interval=50,this.intervalType="millisecond"):e/100<=a?(this.interval=100,this.intervalType="millisecond"):e/200<=a?(this.interval=200,this.intervalType="millisecond"):e/250<=a?(this.interval=250,this.intervalType="millisecond"):e/300<=a?(this.interval=300,this.intervalType="millisecond"):e/400<=a?(this.interval=400,this.intervalType="millisecond"):e/500<=a?(this.interval=500,this.intervalType="millisecond"):e/(1*z.secondDuration)<=
+a?(this.interval=1,this.intervalType="second"):e/(2*z.secondDuration)<=a?(this.interval=2,this.intervalType="second"):e/(5*z.secondDuration)<=a?(this.interval=5,this.intervalType="second"):e/(10*z.secondDuration)<=a?(this.interval=10,this.intervalType="second"):e/(15*z.secondDuration)<=a?(this.interval=15,this.intervalType="second"):e/(20*z.secondDuration)<=a?(this.interval=20,this.intervalType="second"):e/(30*z.secondDuration)<=a?(this.interval=30,this.intervalType="second"):e/(1*z.minuteDuration)<=
+a?(this.interval=1,this.intervalType="minute"):e/(2*z.minuteDuration)<=a?(this.interval=2,this.intervalType="minute"):e/(5*z.minuteDuration)<=a?(this.interval=5,this.intervalType="minute"):e/(10*z.minuteDuration)<=a?(this.interval=10,this.intervalType="minute"):e/(15*z.minuteDuration)<=a?(this.interval=15,this.intervalType="minute"):e/(20*z.minuteDuration)<=a?(this.interval=20,this.intervalType="minute"):e/(30*z.minuteDuration)<=a?(this.interval=30,this.intervalType="minute"):e/(1*z.hourDuration)<=
+a?(this.interval=1,this.intervalType="hour"):e/(2*z.hourDuration)<=a?(this.interval=2,this.intervalType="hour"):e/(3*z.hourDuration)<=a?(this.interval=3,this.intervalType="hour"):e/(6*z.hourDuration)<=a?(this.interval=6,this.intervalType="hour"):e/(1*z.dayDuration)<=a?(this.interval=1,this.intervalType="day"):e/(2*z.dayDuration)<=a?(this.interval=2,this.intervalType="day"):e/(4*z.dayDuration)<=a?(this.interval=4,this.intervalType="day"):e/(1*z.weekDuration)<=a?(this.interval=1,this.intervalType="week"):
+e/(2*z.weekDuration)<=a?(this.interval=2,this.intervalType="week"):e/(3*z.weekDuration)<=a?(this.interval=3,this.intervalType="week"):e/(1*z.monthDuration)<=a?(this.interval=1,this.intervalType="month"):e/(2*z.monthDuration)<=a?(this.interval=2,this.intervalType="month"):e/(3*z.monthDuration)<=a?(this.interval=3,this.intervalType="month"):e/(6*z.monthDuration)<=a?(this.interval=6,this.intervalType="month"):(this.interval=e/(1*z.yearDuration)<=a?1:e/(2*z.yearDuration)<=a?2:e/(4*z.yearDuration)<=a?
+4:Math.floor(A.getNiceNumber(e/(a-1),!0)/z.yearDuration),this.intervalType="year")),this.minimum=null!==this.sessionVariables.internalMinimum?this.sessionVariables.internalMinimum:b-d/2,this.maximum=this.sessionVariables.internalMaximum?this.sessionVariables.internalMaximum:c+d/2,this.valueFormatString||("year"===this.intervalType?this.valueFormatString="YYYY":"month"===this.intervalType?this.valueFormatString="MMM YYYY":"week"===this.intervalType?this.valueFormatString="MMM DD YYYY":"day"===this.intervalType?
+this.valueFormatString="MMM DD YYYY":"hour"===this.intervalType?this.valueFormatString="hh:mm TT":"minute"===this.intervalType?this.valueFormatString="hh:mm TT":"second"===this.intervalType?this.valueFormatString="hh:mm:ss TT":"millisecond"===this.intervalType&&(this.valueFormatString="fff'ms'")),this.intervalstartTimePercent=this.getLabelStartPoint(new Date(this.minimum),this.intervalType,this.interval)):(this.intervalType="number",e=A.getNiceNumber(c-b,!1),this.interval=this._options&&this._options.interval?
+this._options.interval:A.getNiceNumber(e/(a-1),!0),this.minimum=null!==this.sessionVariables.internalMinimum?this.sessionVariables.internalMinimum:Math.floor(b/this.interval)*this.interval,this.maximum=null!==this.sessionVariables.internalMaximum?this.sessionVariables.internalMaximum:Math.ceil(c/this.interval)*this.interval,"axisX"===this.type?(null===this.sessionVariables.internalMinimum&&(this.minimum=b-d/2),this.sessionVariables.internalMaximum||(this.maximum=c+d/2),this.intervalstartTimePercent=
+Math.floor((this.minimum+0.2*this.interval)/this.interval)*this.interval):"axisY"===this.type&&(this.intervalstartTimePercent=this.minimum));"axisX"===this.type&&(this._absoluteMinimum=this._options&&"undefined"!==typeof this._options.minimum?this._options.minimum:this.dataInfo.min-d/2,this._absoluteMaximum=this._options&&"undefined"!==typeof this._options.maximum?this._options.maximum:this.dataInfo.max+d/2);if(!this.valueFormatString&&(this.valueFormatString="#,##0.##",e=Math.abs(this.maximum-this.minimum),
+1>e&&(b=Math.floor(Math.abs(Math.log(e)/Math.LN10))+2,2<b)))for(c=0;c<b-2;c++)this.valueFormatString+="#"};A.getNiceNumber=function(a,b){var c=Math.floor(Math.log(a)/Math.LN10),d=a/Math.pow(10,c);return Number(((b?1.5>d?1:3>d?2:7>d?5:10:1>=d?1:2>=d?2:5>=d?5:10)*Math.pow(10,c)).toFixed(20))};A.prototype.getLabelStartPoint=function(){var a=Y(this.interval,this.intervalType),a=new Date(Math.floor(this.minimum/a)*a);if("millisecond"!==this.intervalType)if("second"===this.intervalType)0<a.getMilliseconds()&&
+(a.setSeconds(a.getSeconds()+1),a.setMilliseconds(0));else if("minute"===this.intervalType){if(0<a.getSeconds()||0<a.getMilliseconds())a.setMinutes(a.getMinutes()+1),a.setSeconds(0),a.setMilliseconds(0)}else if("hour"===this.intervalType){if(0<a.getMinutes()||0<a.getSeconds()||0<a.getMilliseconds())a.setHours(a.getHours()+1),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)}else if("day"===this.intervalType){if(0<a.getHours()||0<a.getMinutes()||0<a.getSeconds()||0<a.getMilliseconds())a.setDate(a.getDate()+
+1),a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)}else if("week"===this.intervalType){if(0<a.getDay()||0<a.getHours()||0<a.getMinutes()||0<a.getSeconds()||0<a.getMilliseconds())a.setDate(a.getDate()+(7-a.getDay())),a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)}else if("month"===this.intervalType){if(1<a.getDate()||0<a.getHours()||0<a.getMinutes()||0<a.getSeconds()||0<a.getMilliseconds())a.setMonth(a.getMonth()+1),a.setDate(1),a.setHours(0),a.setMinutes(0),
+a.setSeconds(0),a.setMilliseconds(0)}else"year"===this.intervalType&&(0<a.getMonth()||1<a.getDate()||0<a.getHours()||0<a.getMinutes()||0<a.getSeconds()||0<a.getMilliseconds())&&(a.setFullYear(a.getFullYear()+1),a.setMonth(0),a.setDate(1),a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0));return a};O(ma,L);O(N,L);N.prototype._initialize=function(){if(this.enabled){this.container=document.createElement("div");this.container.setAttribute("class","canvasjs-chart-tooltip");this.container.style.position=
+"absolute";this.container.style.height="auto";this.container.style.boxShadow="1px 1px 2px 2px rgba(0,0,0,0.1)";this.container.style.zIndex="1000";this.container.style.display="none";var a;a='<div style=" width: auto;height: auto;min-width: 50px;';a+="line-height: 20px;";a+="margin: 0px 0px 0px 0px;";a+="padding: 5px;";a+="font-family: Calibri, Arial, Georgia, serif;";a+="font-weight: 400;";a+="font-style: "+(t?"italic;":"normal;");a+="font-size: 14px;";a+="color: #000000;";a+="text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);";
+a+="text-align: left;";a+="border: 2px solid gray;";a+=t?"background: rgba(255,255,255,.9);":"background: rgb(255,255,255);";a+="text-indent: 0px;";a+="white-space: nowrap;";a+="border-radius: 5px;";a+="-moz-user-select:none;";a+="-khtml-user-select: none;";a+="-webkit-user-select: none;";a+="-ms-user-select: none;";a+="user-select: none;";t||(a+="filter: alpha(opacity = 90);",a+="filter: progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=135, Color='#666666');");a+='} "> Sample Tooltip</div>';
+this.container.innerHTML=a;this.contentDiv=this.container.firstChild;this.container.style.borderRadius=this.contentDiv.style.borderRadius;this.chart._canvasJSContainer.appendChild(this.container)}};N.prototype.mouseMoveHandler=function(a,b){this._lastUpdated&&40>(new Date).getTime()-this._lastUpdated||(this._lastUpdated=(new Date).getTime(),this._updateToolTip(a,b))};N.prototype._updateToolTip=function(a,b){if(this.enabled&&!this.chart.disableToolTip){if("undefined"===typeof a||"undefined"===typeof b){if(isNaN(this._prevX)||
+isNaN(this._prevY))return;a=this._prevX;b=this._prevY}else this._prevX=a,this._prevY=b;var c=null,d=null,e=[],f=0;if(this.shared&&"none"!==this.chart.plotInfo.axisPlacement){f="xySwapped"===this.chart.plotInfo.axisPlacement?(this.chart.axisX.maximum-this.chart.axisX.minimum)/this.chart.axisX.lineCoordinates.height*(this.chart.axisX.lineCoordinates.y2-b)+this.chart.axisX.minimum:(this.chart.axisX.maximum-this.chart.axisX.minimum)/this.chart.axisX.lineCoordinates.width*(a-this.chart.axisX.lineCoordinates.x1)+
+this.chart.axisX.minimum;c=[];for(d=0;d<this.chart.data.length;d++){var g=this.chart.data[d].getDataPointAtX(f,!0);g&&0<=g.index&&(g.dataSeries=this.chart.data[d],null!==g.dataPoint.y&&c.push(g))}if(0===c.length)return;c.sort(function(a,b){return a.distance-b.distance});f=c[0];for(d=0;d<c.length;d++)c[d].dataPoint.x.valueOf()===f.dataPoint.x.valueOf()&&e.push(c[d]);c=null}else if((g=this.chart.getDataPointAtXY(a,b,!0))?(this.currentDataPointIndex=g.dataPointIndex,this.currentSeriesIndex=g.dataSeries.index):
+t?(g=ta(a,b,this.chart._eventManager.ghostCtx),0<g&&"undefined"!==typeof this.chart._eventManager.objectMap[g]?(eventObject=this.chart._eventManager.objectMap[g],this.currentSeriesIndex=eventObject.dataSeriesIndex,this.currentDataPointIndex=0<=eventObject.dataPointIndex?eventObject.dataPointIndex:-1):this.currentDataPointIndex=-1):this.currentDataPointIndex=-1,0<=this.currentSeriesIndex){d=this.chart.data[this.currentSeriesIndex];g={};if(0<=this.currentDataPointIndex)c=d.dataPoints[this.currentDataPointIndex],
+g.dataSeries=d,g.dataPoint=c,g.index=this.currentDataPointIndex,g.distance=Math.abs(c.x-f);else if("line"===d.type||"stepLine"===d.type||"spline"===d.type||"area"===d.type||"stepArea"===d.type||"splineArea"===d.type||"stackedArea"===d.type||"stackedArea100"===d.type||"rangeArea"===d.type||"rangeSplineArea"===d.type||"candlestick"===d.type||"ohlc"===d.type)f=(this.chart.axisX.maximum-this.chart.axisX.minimum)/this.chart.axisX.lineCoordinates.width*(a-this.chart.axisX.lineCoordinates.x1)+this.chart.axisX.minimum.valueOf(),
+g=d.getDataPointAtX(f,!0),g.dataSeries=d,this.currentDataPointIndex=g.index,c=g.dataPoint;else return;null!==g.dataPoint.y&&e.push(g)}if(0<e.length)if(this.highlightObjects(e),f="",f=this.getToolTipInnerHTML({entries:e}),null!==f){this.contentDiv.innerHTML=f;this.contentDiv.innerHTML=f;f=!1;"none"===this.container.style.display&&(f=!0,this.container.style.display="block");try{this.contentDiv.style.borderRightColor=this.contentDiv.style.borderLeftColor=this.contentDiv.style.borderColor=this.borderColor?
+this.borderColor:e[0].dataPoint.color?e[0].dataPoint.color:e[0].dataSeries.color?e[0].dataSeries.color:e[0].dataSeries._colorSet[e[0].index%e[0].dataSeries._colorSet.length]}catch(k){}"pie"===e[0].dataSeries.type||"doughnut"===e[0].dataSeries.type||"funnel"===e[0].dataSeries.type||"bar"===e[0].dataSeries.type||"rangeBar"===e[0].dataSeries.type||"stackedBar"===e[0].dataSeries.type||"stackedBar100"===e[0].dataSeries.type?toolTipLeft=a-10-this.container.clientWidth:(toolTipLeft=this.chart.axisX.lineCoordinates.width/
+Math.abs(this.chart.axisX.maximum-this.chart.axisX.minimum)*Math.abs(e[0].dataPoint.x-this.chart.axisX.minimum)+this.chart.axisX.lineCoordinates.x1+0.5-this.container.clientWidth<<0,toolTipLeft-=10);0>toolTipLeft&&(toolTipLeft+=this.container.clientWidth+20);toolTipLeft+this.container.clientWidth>this.chart._container.clientWidth&&(toolTipLeft=Math.max(0,this.chart._container.clientWidth-this.container.clientWidth));toolTipLeft+="px";e=1!==e.length||this.shared||"line"!==e[0].dataSeries.type&&"stepLine"!==
+e[0].dataSeries.type&&"spline"!==e[0].dataSeries.type&&"area"!==e[0].dataSeries.type&&"stepArea"!==e[0].dataSeries.type&&"splineArea"!==e[0].dataSeries.type&&"stackedArea"!==e[0].dataSeries.type&&"stackedArea100"!==e[0].dataSeries.type?"bar"===e[0].dataSeries.type||"rangeBar"===e[0].dataSeries.type||"stackedBar"===e[0].dataSeries.type||"stackedBar100"===e[0].dataSeries.type?e[0].dataSeries.axisX.lineCoordinates.y2-e[0].dataSeries.axisX.lineCoordinates.height/Math.abs(e[0].dataSeries.axisX.maximum-
+e[0].dataSeries.axisX.minimum)*Math.abs(e[0].dataPoint.x-e[0].dataSeries.axisX.minimum)+0.5<<0:b:e[0].dataSeries.axisY.lineCoordinates.y2-e[0].dataSeries.axisY.lineCoordinates.height/Math.abs(e[0].dataSeries.axisY.maximum-e[0].dataSeries.axisY.minimum)*Math.abs(e[0].dataPoint.y-e[0].dataSeries.axisY.minimum)+0.5<<0;e=-e+10;0<e+this.container.clientHeight+5&&(e-=e+this.container.clientHeight+5-0);this.container.style.left=toolTipLeft;this.container.style.bottom=e+"px";!this.animationEnabled||f?this.disableAnimation():
+this.enableAnimation()}else this.hide(!1)}};N.prototype.highlightObjects=function(a){if(this.enabled){var b=this.chart.overlaidCanvasCtx;this.chart.resetOverlayedCanvas();b.save();for(var c=0,d=0;d<a.length;d++){var e=a[d];if((e=this.chart._eventManager.objectMap[e.dataSeries.dataPointIds[e.index]])&&e.objectType&&"dataPoint"===e.objectType){var c=this.chart.data[e.dataSeriesIndex],f=e.dataPointIndex;if("line"===c.type||"stepLine"===c.type||"spline"===c.type||"scatter"===c.type||"area"===c.type||
+"stepArea"===c.type||"splineArea"===c.type||"stackedArea"===c.type||"stackedArea100"===c.type||"rangeArea"===c.type||"rangeSplineArea"===c.type){var g=c.getMarkerProperties(f,e.x1,e.y1,this.chart.overlaidCanvasCtx);g.size=Math.max(1.5*g.size<<0,10);g.borderColor=g.borderColor||"#FFFFFF";g.borderThickness=g.borderThickness||Math.ceil(0.1*g.size);J.drawMarkers([g]);"undefined"!==typeof e.y2&&(g=c.getMarkerProperties(f,e.x1,e.y2,this.chart.overlaidCanvasCtx),g.size=Math.max(1.5*g.size<<0,10),g.borderColor=
+g.borderColor||"#FFFFFF",g.borderThickness=g.borderThickness||Math.ceil(0.1*g.size),J.drawMarkers([g]))}else"bubble"===c.type?(g=c.getMarkerProperties(f,e.x1,e.y1,this.chart.overlaidCanvasCtx),g.size=e.size,g.color="white",g.borderColor="white",b.globalAlpha=0.3,J.drawMarkers([g]),b.globalAlpha=1):"column"===c.type||"stackedColumn"===c.type||"stackedColumn100"===c.type||"bar"===c.type||"rangeBar"===c.type||"stackedBar"===c.type||"stackedBar100"===c.type||"rangeColumn"===c.type?F(b,e.x1,e.y1,e.x2,
+e.y2,"white",0,null,!1,!1,!1,!1,0.3):"pie"===c.type||"doughnut"===c.type?pa(b,e.center,e.radius,"white",c.type,e.startAngle,e.endAngle,0.3):"candlestick"===c.type?(b.globalAlpha=1,b.strokeStyle=e.color,b.lineWidth=2*e.borderThickness,c=0===b.lineWidth%2?0:0.5,b.beginPath(),b.moveTo(e.x3-c,e.y2),b.lineTo(e.x3-c,Math.min(e.y1,e.y4)),b.stroke(),b.beginPath(),b.moveTo(e.x3-c,Math.max(e.y1,e.y4)),b.lineTo(e.x3-c,e.y3),b.stroke(),F(b,e.x1,Math.min(e.y1,e.y4),e.x2,Math.max(e.y1,e.y4),"transparent",2*e.borderThickness,
+e.color,!1,!1,!1,!1),b.globalAlpha=1):"ohlc"===c.type&&(b.globalAlpha=1,b.strokeStyle=e.color,b.lineWidth=2*e.borderThickness,c=0===b.lineWidth%2?0:0.5,b.beginPath(),b.moveTo(e.x3-c,e.y2),b.lineTo(e.x3-c,e.y3),b.stroke(),b.beginPath(),b.moveTo(e.x3,e.y1),b.lineTo(e.x1,e.y1),b.stroke(),b.beginPath(),b.moveTo(e.x3,e.y4),b.lineTo(e.x2,e.y4),b.stroke(),b.globalAlpha=1)}}b.globalAlpha=1;b.beginPath()}};N.prototype.getToolTipInnerHTML=function(a){a=a.entries;for(var b=null,c=null,d=null,e=0,f="",g=!0,k=
+0;k<a.length;k++)if(a[k].dataSeries.toolTipContent||a[k].dataPoint.toolTipContent){g=!1;break}if(g&&this.content&&"function"===typeof this.content)b=this.content({entries:a});else if(this.shared){for(var p="",k=0;k<a.length;k++)if(c=a[k].dataSeries,d=a[k].dataPoint,e=a[k].index,f="",0===k&&(g&&!this.content)&&(p+="undefined"!==typeof this.chart.axisX.labels[d.x]?this.chart.axisX.labels[d.x]:"{x}",p+="</br>",p=this.chart.replaceKeywordsWithValue(p,d,c,e)),null!==d.toolTipContent&&("undefined"!==typeof d.toolTipContent||
+null!==c._options.toolTipContent)){if("line"===c.type||"stepLine"===c.type||"spline"===c.type||"area"===c.type||"stepArea"===c.type||"splineArea"===c.type||"column"===c.type||"bar"===c.type||"scatter"===c.type||"stackedColumn"===c.type||"stackedColumn100"===c.type||"stackedBar"===c.type||"stackedBar100"===c.type||"stackedArea"===c.type||"stackedArea100"===c.type)f+=d.toolTipContent?d.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"<span style='\"'color:{color};'\"'>{name}:</span> {y}";
+else if("bubble"===c.type)f+=d.toolTipContent?d.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"<span style='\"'color:{color};'\"'>{name}:</span> {y}, {z}";else if("pie"===c.type||"doughnut"===c.type||"funnel"===c.type)f+=d.toolTipContent?d.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:" {y}";else if("rangeColumn"===c.type||"rangeBar"===c.type||
+"rangeArea"===c.type||"rangeSplineArea"===c.type)f+=d.toolTipContent?d.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"<span style='\"'color:{color};'\"'>{name}:</span> {y[0]}, {y[1]}";else if("candlestick"===c.type||"ohlc"===c.type)f+=d.toolTipContent?d.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"<span style='\"'color:{color};'\"'>{name}:</span><br/>Open: {y[0]}<br/>High: {y[1]}<br/>Low: {y[2]}<br/>Close: {y[3]}";
+null===b&&(b="");b+=this.chart.replaceKeywordsWithValue(f,d,c,e);k<a.length-1&&(b+="</br>")}null!==b&&(b=p+b)}else{c=a[0].dataSeries;d=a[0].dataPoint;e=a[0].index;if(null===d.toolTipContent||"undefined"===typeof d.toolTipContent&&null===c._options.toolTipContent)return null;if("line"===c.type||"stepLine"===c.type||"spline"===c.type||"area"===c.type||"stepArea"===c.type||"splineArea"===c.type||"column"===c.type||"bar"===c.type||"scatter"===c.type||"stackedColumn"===c.type||"stackedColumn100"===c.type||
+"stackedBar"===c.type||"stackedBar100"===c.type||"stackedArea"===c.type||"stackedArea100"===c.type)f=d.toolTipContent?d.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"<span style='\"'color:{color};'\"'>"+(d.label?"{label}":"{x}")+" :</span> {y}";else if("bubble"===c.type)f=d.toolTipContent?d.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"<span style='\"'color:{color};'\"'>"+
+(d.label?"{label}":"{x}")+":</span> {y}, {z}";else if("pie"===c.type||"doughnut"===c.type||"funnel"===c.type)f=d.toolTipContent?d.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:(d.name?"{name}: ":d.label?"{label}: ":"")+"{y}";else if("rangeColumn"===c.type||"rangeBar"===c.type||"rangeArea"===c.type||"rangeSplineArea"===c.type)f=d.toolTipContent?d.toolTipContent:c.toolTipContent?c.toolTipContent:
+this.content&&"function"!==typeof this.content?this.content:"<span style='\"'color:{color};'\"'>"+(d.label?"{label}":"{x}")+" :</span> {y[0]}, {y[1]}";else if("candlestick"===c.type||"ohlc"===c.type)f=d.toolTipContent?d.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"<span style='\"'color:{color};'\"'>"+(d.label?"{label}":"{x}")+"</span><br/>Open: {y[0]}<br/>High: {y[1]}<br/>Low: {y[2]}<br/>Close: {y[3]}";
+null===b&&(b="");b+=this.chart.replaceKeywordsWithValue(f,d,c,e)}return b};N.prototype.enableAnimation=function(){this.container.style.WebkitTransition||(this.container.style.WebkitTransition="left .2s ease-out, bottom .2s ease-out",this.container.style.MozTransition="left .2s ease-out, bottom .2s ease-out",this.container.style.MsTransition="left .2s ease-out, bottom .2s ease-out",this.container.style.transition="left .2s ease-out, bottom .2s ease-out")};N.prototype.disableAnimation=function(){this.container.style.WebkitTransition&&
+(this.container.style.WebkitTransition="",this.container.style.MozTransition="",this.container.style.MsTransition="",this.container.style.transition="")};N.prototype.hide=function(a){this.enabled&&(this.container.style.display="none",this.currentSeriesIndex=-1,this._prevY=this._prevX=NaN,("undefined"===typeof a||a)&&this.chart.resetOverlayedCanvas())};v.prototype.replaceKeywordsWithValue=function(a,b,c,d,e){var f=this;e="undefined"===typeof e?0:e;if((0<=c.type.indexOf("stacked")||"pie"===c.type||
+"doughnut"===c.type)&&(0<=a.indexOf("#percent")||0<=a.indexOf("#total"))){var g="#percent",k="#total",p=null;if(0<=c.type.indexOf("stacked"))k=0,p=b.x.getTime?b.x.getTime():b.x,p in c.plotUnit.yTotals&&(k=c.plotUnit.yTotals[p],g=isNaN(b.y)?0:100*(b.y/k));else if("pie"===c.type||"doughnut"===c.type){for(i=k=0;i<c.dataPoints.length;i++)isNaN(c.dataPoints[i].y)||(k+=c.dataPoints[i].y);g=isNaN(b.y)?0:100*(b.y/k)}do{p="";if(c.percentFormatString)p=c.percentFormatString;else{var p="#,##0.",h=Math.max(Math.ceil(Math.log(1/
+Math.abs(g))/Math.LN10),2);if(isNaN(h)||!isFinite(h))h=2;for(var l=0;l<h;l++)p+="#"}a=a.replace("#percent",X(g,p,f._cultureInfo));a=a.replace("#total",X(k,c.yValueFormatString?c.yValueFormatString:"#,##0.########"))}while(0<=a.indexOf("#percent")||0<=a.indexOf("#total"))}return a.replace(/\{.*?\}|"[^"]*"|'[^']*'/g,function(a){if('"'===a[0]&&'"'===a[a.length-1]||"'"===a[0]&&"'"===a[a.length-1])return a.slice(1,a.length-1);a=Z(a.slice(1,a.length-1));a=a.replace("#index",e);var g=null;try{var h=a.match(/(.*?)\s*\[\s*(.*?)\s*\]/);
+h&&0<h.length&&(g=Z(h[2]),a=Z(h[1]))}catch(k){}h=null;if("color"===a)return b.color?b.color:c.color?c.color:c._colorSet[d%c._colorSet.length];if(b.hasOwnProperty(a))h=b;else if(c.hasOwnProperty(a))h=c;else return"";h=h[a];null!==g&&(h=h[g]);return"x"===a?f.axisX&&"dateTime"===f.plotInfo.axisXValueType?ya(h,b.xValueFormatString?b.xValueFormatString:c.xValueFormatString?c.xValueFormatString:f.axisX&&f.axisX.valueFormatString?f.axisX.valueFormatString:"DD MMM YY",f._cultureInfo):X(h,b.xValueFormatString?
+b.xValueFormatString:c.xValueFormatString?c.xValueFormatString:"#,##0.########",f._cultureInfo):"y"===a?X(h,b.yValueFormatString?b.yValueFormatString:c.yValueFormatString?c.yValueFormatString:"#,##0.########",f._cultureInfo):"z"===a?X(h,b.zValueFormatString?b.zValueFormatString:c.zValueFormatString?c.zValueFormatString:"#,##0.########",f._cultureInfo):h})};$.prototype.reset=function(){this.lastObjectId=0;this.objectMap=[];this.rectangularRegionEventSubscriptions=[];this.previousDataPointEventObject=
+null;this.eventObjects=[];t&&(this.ghostCtx.clearRect(0,0,this.chart.width,this.chart.height),this.ghostCtx.beginPath())};$.prototype.getNewObjectTrackingId=function(){return++this.lastObjectId};$.prototype.mouseEventHandler=function(a){if("mousemove"===a.type||"click"===a.type){var b=[],c=ia(a),d=null;if((d=this.chart.getObjectAtXY(c.x,c.y,!1))&&"undefined"!==typeof this.objectMap[d])if(d=this.objectMap[d],"dataPoint"===d.objectType){var e=this.chart.data[d.dataSeriesIndex],f=e.dataPoints[d.dataPointIndex],
+g=d.dataPointIndex;d.eventParameter={x:c.x,y:c.y,dataPoint:f,dataSeries:e._options,dataPointIndex:g,dataSeriesIndex:e.index,chart:this.chart._publicChartReference};d.eventContext={context:f,userContext:f,mouseover:"mouseover",mousemove:"mousemove",mouseout:"mouseout",click:"click"};b.push(d);d=this.objectMap[e.id];d.eventParameter={x:c.x,y:c.y,dataPoint:f,dataSeries:e._options,dataPointIndex:g,dataSeriesIndex:e.index,chart:this.chart._publicChartReference};d.eventContext={context:e,userContext:e._options,
+mouseover:"mouseover",mousemove:"mousemove",mouseout:"mouseout",click:"click"};b.push(this.objectMap[e.id])}else"legendItem"===d.objectType&&(e=this.chart.data[d.dataSeriesIndex],f=null!==d.dataPointIndex?e.dataPoints[d.dataPointIndex]:null,d.eventParameter={x:c.x,y:c.y,dataSeries:e._options,dataPoint:f,dataPointIndex:d.dataPointIndex,dataSeriesIndex:d.dataSeriesIndex,chart:this.chart._publicChartReference},d.eventContext={context:this.chart.legend,userContext:this.chart.legend._options,mouseover:"itemmouseover",
+mousemove:"itemmousemove",mouseout:"itemmouseout",click:"itemclick"},b.push(d));e=[];for(c=0;c<this.mouseoveredObjectMaps.length;c++){f=!0;for(d=0;d<b.length;d++)if(b[d].id===this.mouseoveredObjectMaps[c].id){f=!1;break}f?this.fireEvent(this.mouseoveredObjectMaps[c],"mouseout",a):e.push(this.mouseoveredObjectMaps[c])}this.mouseoveredObjectMaps=e;for(c=0;c<b.length;c++){e=!1;for(d=0;d<this.mouseoveredObjectMaps.length;d++)if(b[c].id===this.mouseoveredObjectMaps[d].id){e=!0;break}e||(this.fireEvent(b[c],
+"mouseover",a),this.mouseoveredObjectMaps.push(b[c]));"click"===a.type?this.fireEvent(b[c],"click",a):"mousemove"===a.type&&this.fireEvent(b[c],"mousemove",a)}}};$.prototype.fireEvent=function(a,b,c){if(a&&b){var d=a.eventParameter,e=a.eventContext,f=a.eventContext.userContext;f&&(e&&f[e[b]])&&f[e[b]].call(f,d);"mouseout"!==b?f.cursor&&f.cursor!==c.target.style.cursor&&(c.target.style.cursor=f.cursor):(c.target.style.cursor=this.chart._defaultCursor,delete a.eventParameter,delete a.eventContext);
+"click"===b&&("dataPoint"===a.objectType&&this.chart.pieDoughnutClickHandler)&&this.chart.pieDoughnutClickHandler.call(this.chart.data[a.dataSeriesIndex],d)}};O(xa,L);oa.prototype.animate=function(a,b,c,d,e){var f=this;this.chart.isAnimating=!0;e=e||y.easing.linear;c&&this.animations.push({startTime:(new Date).getTime()+(a?a:0),duration:b,animationCallback:c,onComplete:d});for(a=[];0<this.animations.length;)if(b=this.animations.shift(),c=(new Date).getTime(),d=0,b.startTime<=c&&(d=e(Math.min(c-b.startTime,
+b.duration),0,1,b.duration),d=Math.min(d,1),isNaN(d)||!isFinite(d))&&(d=1),1>d&&a.push(b),b.animationCallback(d),1<=d&&b.onComplete)b.onComplete();this.animations=a;0<this.animations.length?this.animationRequestId=this.chart.requestAnimFrame.call(window,function(){f.animate.call(f)}):this.chart.isAnimating=!1};oa.prototype.cancelAllAnimations=function(){this.animations=[];this.animationRequestId&&this.chart.cancelRequestAnimFrame.call(window,this.animationRequestId);this.animationRequestId=null;this.chart.isAnimating=
+!1};var y={yScaleAnimation:function(a,b){if(0!==a){var c=b.dest,d=b.source.canvas,e=b.animationBase;c.drawImage(d,0,0,d.width,d.height,0,e-e*a,c.canvas.width/H,a*c.canvas.height/H)}},xScaleAnimation:function(a,b){if(0!==a){var c=b.dest,d=b.source.canvas,e=b.animationBase;c.drawImage(d,0,0,d.width,d.height,e-e*a,0,a*c.canvas.width/H,c.canvas.height/H)}},xClipAnimation:function(a,b){if(0!==a){var c=b.dest,d=b.source.canvas;c.save();0<a&&c.drawImage(d,0,0,d.width*a,d.height,0,0,d.width*a/H,d.height/
+H);c.restore()}},fadeInAnimation:function(a,b){if(0!==a){var c=b.dest,d=b.source.canvas;c.save();c.globalAlpha=a;c.drawImage(d,0,0,d.width,d.height,0,0,c.canvas.width/H,c.canvas.height/H);c.restore()}},easing:{linear:function(a,b,c,d){return c*a/d+b},easeOutQuad:function(a,b,c,d){return-c*(a/=d)*(a-2)+b},easeOutQuart:function(a,b,c,d){return-c*((a=a/d-1)*a*a*a-1)+b},easeInQuad:function(a,b,c,d){return c*(a/=d)*a+b},easeInQuart:function(a,b,c,d){return c*(a/=d)*a*a*a+b}}},J={drawMarker:function(a,
+b,c,d,e,f,g,k){if(c){var p=1;c.fillStyle=f?f:"#000000";c.strokeStyle=g?g:"#000000";c.lineWidth=k?k:0;"circle"===d?(c.moveTo(a,b),c.beginPath(),c.arc(a,b,e/2,0,2*Math.PI,!1),f&&c.fill(),k&&(g?c.stroke():(p=c.globalAlpha,c.globalAlpha=0.15,c.strokeStyle="black",c.stroke(),c.globalAlpha=p))):"square"===d?(c.beginPath(),c.rect(a-e/2,b-e/2,e,e),f&&c.fill(),k&&(g?c.stroke():(p=c.globalAlpha,c.globalAlpha=0.15,c.strokeStyle="black",c.stroke(),c.globalAlpha=p))):"triangle"===d?(c.beginPath(),c.moveTo(a-e/
+2,b+e/2),c.lineTo(a+e/2,b+e/2),c.lineTo(a,b-e/2),c.closePath(),f&&c.fill(),k&&(g?c.stroke():(p=c.globalAlpha,c.globalAlpha=0.15,c.strokeStyle="black",c.stroke(),c.globalAlpha=p)),c.beginPath()):"cross"===d&&(c.strokeStyle=f,c.lineWidth=e/4,c.beginPath(),c.moveTo(a-e/2,b-e/2),c.lineTo(a+e/2,b+e/2),c.stroke(),c.moveTo(a+e/2,b-e/2),c.lineTo(a-e/2,b+e/2),c.stroke())}},drawMarkers:function(a){for(var b=0;b<a.length;b++){var c=a[b];J.drawMarker(c.x,c.y,c.ctx,c.type,c.size,c.color,c.borderColor,c.borderThickness)}}},
+za={Chart:function(a,b){var c=new v(a,b,this);this.render=function(){c.render(this.options)};this.options=c._options},addColorSet:function(a,b){V[a]=b},addCultureInfo:function(a,b){na[a]=b}};za.Chart.version="v1.6.1 GA";window.CanvasJS=za})();
+/*
+ excanvas is used to support IE678 which do not implement HTML5 Canvas Element. You can safely remove the following excanvas code if you don't need to support older browsers.
+
+ Copyright 2006 Google Inc. https://code.google.com/p/explorercanvas/
+ Licensed under the Apache License, Version 2.0
+*/
+document.createElement("canvas").getContext||function(){function V(){return this.context_||(this.context_=new C(this))}function W(a,b,c){var g=M.call(arguments,2);return function(){return a.apply(b,g.concat(M.call(arguments)))}}function N(a){return String(a).replace(/&/g,"&").replace(/"/g,""")}function O(a){a.namespaces.g_vml_||a.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml","#default#VML");a.namespaces.g_o_||a.namespaces.add("g_o_","urn:schemas-microsoft-com:office:office","#default#VML");
+a.styleSheets.ex_canvas_||(a=a.createStyleSheet(),a.owningElement.id="ex_canvas_",a.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}")}function X(a){var b=a.srcElement;switch(a.propertyName){case "width":b.getContext().clearRect();b.style.width=b.attributes.width.nodeValue+"px";b.firstChild.style.width=b.clientWidth+"px";break;case "height":b.getContext().clearRect(),b.style.height=b.attributes.height.nodeValue+"px",b.firstChild.style.height=b.clientHeight+
+"px"}}function Y(a){a=a.srcElement;a.firstChild&&(a.firstChild.style.width=a.clientWidth+"px",a.firstChild.style.height=a.clientHeight+"px")}function D(){return[[1,0,0],[0,1,0],[0,0,1]]}function t(a,b){for(var c=D(),g=0;3>g;g++)for(var e=0;3>e;e++){for(var f=0,d=0;3>d;d++)f+=a[g][d]*b[d][e];c[g][e]=f}return c}function P(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit=a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX=
+a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.globalAlpha=a.globalAlpha;b.font=a.font;b.textAlign=a.textAlign;b.textBaseline=a.textBaseline;b.arcScaleX_=a.arcScaleX_;b.arcScaleY_=a.arcScaleY_;b.lineScale_=a.lineScale_}function Q(a){var b=a.indexOf("(",3),c=a.indexOf(")",b+1),b=a.substring(b+1,c).split(",");if(4!=b.length||"a"!=a.charAt(3))b[3]=1;return b}function E(a,b,c){return Math.min(c,Math.max(b,a))}function F(a,b,c){0>c&&c++;1<c&&c--;return 1>6*c?a+6*(b-a)*c:
+1>2*c?b:2>3*c?a+6*(b-a)*(2/3-c):a}function G(a){if(a in H)return H[a];var b,c=1;a=String(a);if("#"==a.charAt(0))b=a;else if(/^rgb/.test(a)){c=Q(a);b="#";for(var g,e=0;3>e;e++)g=-1!=c[e].indexOf("%")?Math.floor(255*(parseFloat(c[e])/100)):+c[e],b+=v[E(g,0,255)];c=+c[3]}else if(/^hsl/.test(a)){e=c=Q(a);b=parseFloat(e[0])/360%360;0>b&&b++;g=E(parseFloat(e[1])/100,0,1);e=E(parseFloat(e[2])/100,0,1);if(0==g)g=e=b=e;else{var f=0.5>e?e*(1+g):e+g-e*g,d=2*e-f;g=F(d,f,b+1/3);e=F(d,f,b);b=F(d,f,b-1/3)}b="#"+
+v[Math.floor(255*g)]+v[Math.floor(255*e)]+v[Math.floor(255*b)];c=c[3]}else b=Z[a]||a;return H[a]={color:b,alpha:c}}function C(a){this.m_=D();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.fillStyle=this.strokeStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=1*q;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=a;var b="width:"+a.clientWidth+"px;height:"+a.clientHeight+"px;overflow:hidden;position:absolute",
+c=a.ownerDocument.createElement("div");c.style.cssText=b;a.appendChild(c);b=c.cloneNode(!1);b.style.backgroundColor="red";b.style.filter="alpha(opacity=0)";a.appendChild(b);this.element_=c;this.lineScale_=this.arcScaleY_=this.arcScaleX_=1}function R(a,b,c,g){a.currentPath_.push({type:"bezierCurveTo",cp1x:b.x,cp1y:b.y,cp2x:c.x,cp2y:c.y,x:g.x,y:g.y});a.currentX_=g.x;a.currentY_=g.y}function S(a,b){var c=G(a.strokeStyle),g=c.color,c=c.alpha*a.globalAlpha,e=a.lineScale_*a.lineWidth;1>e&&(c*=e);b.push("<g_vml_:stroke",
+' opacity="',c,'"',' joinstyle="',a.lineJoin,'"',' miterlimit="',a.miterLimit,'"',' endcap="',$[a.lineCap]||"square",'"',' weight="',e,'px"',' color="',g,'" />')}function T(a,b,c,g){var e=a.fillStyle,f=a.arcScaleX_,d=a.arcScaleY_,k=g.x-c.x,n=g.y-c.y;if(e instanceof w){var h=0,l=g=0,u=0,m=1;if("gradient"==e.type_){h=e.x1_/f;c=e.y1_/d;var p=s(a,e.x0_/f,e.y0_/d),h=s(a,h,c),h=180*Math.atan2(h.x-p.x,h.y-p.y)/Math.PI;0>h&&(h+=360);1E-6>h&&(h=0)}else p=s(a,e.x0_,e.y0_),g=(p.x-c.x)/k,l=(p.y-c.y)/n,k/=f*q,
+n/=d*q,m=x.max(k,n),u=2*e.r0_/m,m=2*e.r1_/m-u;f=e.colors_;f.sort(function(a,b){return a.offset-b.offset});d=f.length;p=f[0].color;c=f[d-1].color;k=f[0].alpha*a.globalAlpha;a=f[d-1].alpha*a.globalAlpha;for(var n=[],r=0;r<d;r++){var t=f[r];n.push(t.offset*m+u+" "+t.color)}b.push('<g_vml_:fill type="',e.type_,'"',' method="none" focus="100%"',' color="',p,'"',' color2="',c,'"',' colors="',n.join(","),'"',' opacity="',a,'"',' g_o_:opacity2="',k,'"',' angle="',h,'"',' focusposition="',g,",",l,'" />')}else e instanceof
+I?k&&n&&b.push("<g_vml_:fill",' position="',-c.x/k*f*f,",",-c.y/n*d*d,'"',' type="tile"',' src="',e.src_,'" />'):(e=G(a.fillStyle),b.push('<g_vml_:fill color="',e.color,'" opacity="',e.alpha*a.globalAlpha,'" />'))}function s(a,b,c){a=a.m_;return{x:q*(b*a[0][0]+c*a[1][0]+a[2][0])-r,y:q*(b*a[0][1]+c*a[1][1]+a[2][1])-r}}function z(a,b,c){isFinite(b[0][0])&&(isFinite(b[0][1])&&isFinite(b[1][0])&&isFinite(b[1][1])&&isFinite(b[2][0])&&isFinite(b[2][1]))&&(a.m_=b,c&&(a.lineScale_=aa(ba(b[0][0]*b[1][1]-b[0][1]*
+b[1][0]))))}function w(a){this.type_=a;this.r1_=this.y1_=this.x1_=this.r0_=this.y0_=this.x0_=0;this.colors_=[]}function I(a,b){if(!a||1!=a.nodeType||"IMG"!=a.tagName)throw new A("TYPE_MISMATCH_ERR");if("complete"!=a.readyState)throw new A("INVALID_STATE_ERR");switch(b){case "repeat":case null:case "":this.repetition_="repeat";break;case "repeat-x":case "repeat-y":case "no-repeat":this.repetition_=b;break;default:throw new A("SYNTAX_ERR");}this.src_=a.src;this.width_=a.width;this.height_=a.height}
+function A(a){this.code=this[a];this.message=a+": DOM Exception "+this.code}var x=Math,k=x.round,J=x.sin,K=x.cos,ba=x.abs,aa=x.sqrt,q=10,r=q/2;navigator.userAgent.match(/MSIE ([\d.]+)?/);var M=Array.prototype.slice;O(document);var U={init:function(a){a=a||document;a.createElement("canvas");a.attachEvent("onreadystatechange",W(this.init_,this,a))},init_:function(a){a=a.getElementsByTagName("canvas");for(var b=0;b<a.length;b++)this.initElement(a[b])},initElement:function(a){if(!a.getContext){a.getContext=
+V;O(a.ownerDocument);a.innerHTML="";a.attachEvent("onpropertychange",X);a.attachEvent("onresize",Y);var b=a.attributes;b.width&&b.width.specified?a.style.width=b.width.nodeValue+"px":a.width=a.clientWidth;b.height&&b.height.specified?a.style.height=b.height.nodeValue+"px":a.height=a.clientHeight}return a}};U.init();for(var v=[],d=0;16>d;d++)for(var B=0;16>B;B++)v[16*d+B]=d.toString(16)+B.toString(16);var Z={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",
+bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",
+darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",
+ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA",
+mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",
+peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"},
+H={},L={},$={butt:"flat",round:"round"},d=C.prototype;d.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null);this.element_.innerHTML=""};d.beginPath=function(){this.currentPath_=[]};d.moveTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"moveTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.lineTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"lineTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.bezierCurveTo=
+function(a,b,c,g,e,f){e=s(this,e,f);a=s(this,a,b);c=s(this,c,g);R(this,a,c,e)};d.quadraticCurveTo=function(a,b,c,g){a=s(this,a,b);c=s(this,c,g);g={x:this.currentX_+2/3*(a.x-this.currentX_),y:this.currentY_+2/3*(a.y-this.currentY_)};R(this,g,{x:g.x+(c.x-this.currentX_)/3,y:g.y+(c.y-this.currentY_)/3},c)};d.arc=function(a,b,c,g,e,f){c*=q;var d=f?"at":"wa",k=a+K(g)*c-r,n=b+J(g)*c-r;g=a+K(e)*c-r;e=b+J(e)*c-r;k!=g||f||(k+=0.125);a=s(this,a,b);k=s(this,k,n);g=s(this,g,e);this.currentPath_.push({type:d,
+x:a.x,y:a.y,radius:c,xStart:k.x,yStart:k.y,xEnd:g.x,yEnd:g.y})};d.rect=function(a,b,c,g){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath()};d.strokeRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath();this.stroke();this.currentPath_=e};d.fillRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+
+c,b+g);this.lineTo(a,b+g);this.closePath();this.fill();this.currentPath_=e};d.createLinearGradient=function(a,b,c,g){var e=new w("gradient");e.x0_=a;e.y0_=b;e.x1_=c;e.y1_=g;return e};d.createRadialGradient=function(a,b,c,g,e,f){var d=new w("gradientradial");d.x0_=a;d.y0_=b;d.r0_=c;d.x1_=g;d.y1_=e;d.r1_=f;return d};d.drawImage=function(a,b){var c,g,e,d,r,y,n,h;e=a.runtimeStyle.width;d=a.runtimeStyle.height;a.runtimeStyle.width="auto";a.runtimeStyle.height="auto";var l=a.width,u=a.height;a.runtimeStyle.width=
+e;a.runtimeStyle.height=d;if(3==arguments.length)c=arguments[1],g=arguments[2],r=y=0,n=e=l,h=d=u;else if(5==arguments.length)c=arguments[1],g=arguments[2],e=arguments[3],d=arguments[4],r=y=0,n=l,h=u;else if(9==arguments.length)r=arguments[1],y=arguments[2],n=arguments[3],h=arguments[4],c=arguments[5],g=arguments[6],e=arguments[7],d=arguments[8];else throw Error("Invalid number of arguments");var m=s(this,c,g),p=[];p.push(" <g_vml_:group",' coordsize="',10*q,",",10*q,'"',' coordorigin="0,0"',' style="width:',
+10,"px;height:",10,"px;position:absolute;");if(1!=this.m_[0][0]||this.m_[0][1]||1!=this.m_[1][1]||this.m_[1][0]){var t=[];t.push("M11=",this.m_[0][0],",","M12=",this.m_[1][0],",","M21=",this.m_[0][1],",","M22=",this.m_[1][1],",","Dx=",k(m.x/q),",","Dy=",k(m.y/q),"");var v=s(this,c+e,g),w=s(this,c,g+d);c=s(this,c+e,g+d);m.x=x.max(m.x,v.x,w.x,c.x);m.y=x.max(m.y,v.y,w.y,c.y);p.push("padding:0 ",k(m.x/q),"px ",k(m.y/q),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",t.join(""),", sizingmethod='clip');")}else p.push("top:",
+k(m.y/q),"px;left:",k(m.x/q),"px;");p.push(' ">','<g_vml_:image src="',a.src,'"',' style="width:',q*e,"px;"," height:",q*d,'px"',' cropleft="',r/l,'"',' croptop="',y/u,'"',' cropright="',(l-r-n)/l,'"',' cropbottom="',(u-y-h)/u,'"'," />","</g_vml_:group>");this.element_.insertAdjacentHTML("BeforeEnd",p.join(""))};d.stroke=function(a){var b=[];b.push("<g_vml_:shape",' filled="',!!a,'"',' style="position:absolute;width:',10,"px;height:",10,'px;"',' coordorigin="0,0"',' coordsize="',10*q,",",10*q,'"',
+' stroked="',!a,'"',' path="');for(var c={x:null,y:null},d={x:null,y:null},e=0;e<this.currentPath_.length;e++){var f=this.currentPath_[e];switch(f.type){case "moveTo":b.push(" m ",k(f.x),",",k(f.y));break;case "lineTo":b.push(" l ",k(f.x),",",k(f.y));break;case "close":b.push(" x ");f=null;break;case "bezierCurveTo":b.push(" c ",k(f.cp1x),",",k(f.cp1y),",",k(f.cp2x),",",k(f.cp2y),",",k(f.x),",",k(f.y));break;case "at":case "wa":b.push(" ",f.type," ",k(f.x-this.arcScaleX_*f.radius),",",k(f.y-this.arcScaleY_*
+f.radius)," ",k(f.x+this.arcScaleX_*f.radius),",",k(f.y+this.arcScaleY_*f.radius)," ",k(f.xStart),",",k(f.yStart)," ",k(f.xEnd),",",k(f.yEnd))}if(f){if(null==c.x||f.x<c.x)c.x=f.x;if(null==d.x||f.x>d.x)d.x=f.x;if(null==c.y||f.y<c.y)c.y=f.y;if(null==d.y||f.y>d.y)d.y=f.y}}b.push(' ">');a?T(this,b,c,d):S(this,b);b.push("</g_vml_:shape>");this.element_.insertAdjacentHTML("beforeEnd",b.join(""))};d.fill=function(){this.stroke(!0)};d.closePath=function(){this.currentPath_.push({type:"close"})};d.save=function(){var a=
+{};P(this,a);this.aStack_.push(a);this.mStack_.push(this.m_);this.m_=t(D(),this.m_)};d.restore=function(){this.aStack_.length&&(P(this.aStack_.pop(),this),this.m_=this.mStack_.pop())};d.translate=function(a,b){z(this,t([[1,0,0],[0,1,0],[a,b,1]],this.m_),!1)};d.rotate=function(a){var b=K(a);a=J(a);z(this,t([[b,a,0],[-a,b,0],[0,0,1]],this.m_),!1)};d.scale=function(a,b){this.arcScaleX_*=a;this.arcScaleY_*=b;z(this,t([[a,0,0],[0,b,0],[0,0,1]],this.m_),!0)};d.transform=function(a,b,c,d,e,f){z(this,t([[a,
+b,0],[c,d,0],[e,f,1]],this.m_),!0)};d.setTransform=function(a,b,c,d,e,f){z(this,[[a,b,0],[c,d,0],[e,f,1]],!0)};d.drawText_=function(a,b,c,d,e){var f=this.m_;d=0;var r=1E3,t=0,n=[],h;h=this.font;if(L[h])h=L[h];else{var l=document.createElement("div").style;try{l.font=h}catch(u){}h=L[h]={style:l.fontStyle||"normal",variant:l.fontVariant||"normal",weight:l.fontWeight||"normal",size:l.fontSize||10,family:l.fontFamily||"sans-serif"}}var l=h,m=this.element_;h={};for(var p in l)h[p]=l[p];p=parseFloat(m.currentStyle.fontSize);
+m=parseFloat(l.size);"number"==typeof l.size?h.size=l.size:-1!=l.size.indexOf("px")?h.size=m:-1!=l.size.indexOf("em")?h.size=p*m:-1!=l.size.indexOf("%")?h.size=p/100*m:-1!=l.size.indexOf("pt")?h.size=m/0.75:h.size=p;h.size*=0.981;p=h.style+" "+h.variant+" "+h.weight+" "+h.size+"px "+h.family;m=this.element_.currentStyle;l=this.textAlign.toLowerCase();switch(l){case "left":case "center":case "right":break;case "end":l="ltr"==m.direction?"right":"left";break;case "start":l="rtl"==m.direction?"right":
+"left";break;default:l="left"}switch(this.textBaseline){case "hanging":case "top":t=h.size/1.75;break;case "middle":break;default:case null:case "alphabetic":case "ideographic":case "bottom":t=-h.size/2.25}switch(l){case "right":d=1E3;r=0.05;break;case "center":d=r=500}b=s(this,b+0,c+t);n.push('<g_vml_:line from="',-d,' 0" to="',r,' 0.05" ',' coordsize="100 100" coordorigin="0 0"',' filled="',!e,'" stroked="',!!e,'" style="position:absolute;width:1px;height:1px;">');e?S(this,n):T(this,n,{x:-d,y:0},
+{x:r,y:h.size});e=f[0][0].toFixed(3)+","+f[1][0].toFixed(3)+","+f[0][1].toFixed(3)+","+f[1][1].toFixed(3)+",0,0";b=k(b.x/q)+","+k(b.y/q);n.push('<g_vml_:skew on="t" matrix="',e,'" ',' offset="',b,'" origin="',d,' 0" />','<g_vml_:path textpathok="true" />','<g_vml_:textpath on="true" string="',N(a),'" style="v-text-align:',l,";font:",N(p),'" /></g_vml_:line>');this.element_.insertAdjacentHTML("beforeEnd",n.join(""))};d.fillText=function(a,b,c,d){this.drawText_(a,b,c,d,!1)};d.strokeText=function(a,
+b,c,d){this.drawText_(a,b,c,d,!0)};d.measureText=function(a){this.textMeasureEl_||(this.element_.insertAdjacentHTML("beforeEnd",'<span style="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;"></span>'),this.textMeasureEl_=this.element_.lastChild);var b=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(b.createTextNode(a));return{width:this.textMeasureEl_.offsetWidth}};d.clip=function(){};
+d.arcTo=function(){};d.createPattern=function(a,b){return new I(a,b)};w.prototype.addColorStop=function(a,b){b=G(b);this.colors_.push({offset:a,color:b.color,alpha:b.alpha})};d=A.prototype=Error();d.INDEX_SIZE_ERR=1;d.DOMSTRING_SIZE_ERR=2;d.HIERARCHY_REQUEST_ERR=3;d.WRONG_DOCUMENT_ERR=4;d.INVALID_CHARACTER_ERR=5;d.NO_DATA_ALLOWED_ERR=6;d.NO_MODIFICATION_ALLOWED_ERR=7;d.NOT_FOUND_ERR=8;d.NOT_SUPPORTED_ERR=9;d.INUSE_ATTRIBUTE_ERR=10;d.INVALID_STATE_ERR=11;d.SYNTAX_ERR=12;d.INVALID_MODIFICATION_ERR=
+13;d.NAMESPACE_ERR=14;d.INVALID_ACCESS_ERR=15;d.VALIDATION_ERR=16;d.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=U;CanvasRenderingContext2D=C;CanvasGradient=w;CanvasPattern=I;DOMException=A}();
diff --git a/frc971/http_status/web_test/lib/jquery-1.4.4.js b/frc971/http_status/www/lib/jquery-1.4.4.js
similarity index 100%
rename from frc971/http_status/web_test/lib/jquery-1.4.4.js
rename to frc971/http_status/www/lib/jquery-1.4.4.js
diff --git a/frc971/http_status/www/lib/reconnecting-websocket.min.js b/frc971/http_status/www/lib/reconnecting-websocket.min.js
new file mode 100644
index 0000000..f40b6c7
--- /dev/null
+++ b/frc971/http_status/www/lib/reconnecting-websocket.min.js
@@ -0,0 +1,96 @@
+// MIT License:
+//
+// Copyright (c) 2010-2012, Joe Walnes
+//
+// 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", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+/**
+ * This behaves like a WebSocket in every way, except if it fails to connect,
+ * or it gets disconnected, it will repeatedly poll until it successfully connects
+ * again.
+ *
+ * It is API compatible, so when you have:
+ * ws = new WebSocket('ws://....');
+ * you can replace with:
+ * ws = new ReconnectingWebSocket('ws://....');
+ *
+ * The event stream will typically look like:
+ * onconnecting
+ * onopen
+ * onmessage
+ * onmessage
+ * onclose // lost connection
+ * onconnecting
+ * onopen // sometime later...
+ * onmessage
+ * onmessage
+ * etc...
+ *
+ * It is API compatible with the standard WebSocket API, apart from the following members:
+ *
+ * - `bufferedAmount`
+ * - `extensions`
+ * - `binaryType`
+ *
+ * Latest version: https://github.com/joewalnes/reconnecting-websocket/
+ * - Joe Walnes
+ *
+ * Syntax
+ * ======
+ * var socket = new ReconnectingWebSocket(url, protocols, options);
+ *
+ * Parameters
+ * ==========
+ * url - The url you are connecting to.
+ * protocols - Optional string or array of protocols.
+ * options - See below
+ *
+ * Options
+ * =======
+ * Options can either be passed upon instantiation or set after instantiation:
+ *
+ * var socket = new ReconnectingWebSocket(url, null, { debug: true, reconnectInterval: 4000 });
+ *
+ * or
+ *
+ * var socket = new ReconnectingWebSocket(url);
+ * socket.debug = true;
+ * socket.reconnectInterval = 4000;
+ *
+ * debug
+ * - Whether this instance should log debug messages. Accepts true or false. Default: false.
+ *
+ * automaticOpen
+ * - Whether or not the websocket should attempt to connect immediately upon instantiation. The socket can be manually opened or closed at any time using ws.open() and ws.close().
+ *
+ * reconnectInterval
+ * - The number of milliseconds to delay before attempting to reconnect. Accepts integer. Default: 1000.
+ *
+ * maxReconnectInterval
+ * - The maximum number of milliseconds to delay a reconnection attempt. Accepts integer. Default: 30000.
+ *
+ * reconnectDecay
+ * - The rate of increase of the reconnect delay. Allows reconnect attempts to back off when problems persist. Accepts integer or float. Default: 1.5.
+ *
+ * timeoutInterval
+ * - The maximum time in milliseconds to wait for a connection to succeed before closing and retrying. Accepts integer. Default: 2000.
+ *
+ */
+
+!function(a,b){"function"==typeof define&&define.amd?define([],b):"undefined"!=typeof module&&module.exports?module.exports=b():a.ReconnectingWebSocket=b()}(this,function(){function a(b,c,d){function l(a,b){var c=document.createEvent("CustomEvent");return c.initCustomEvent(a,!1,!1,b),c}var e={debug:!1,automaticOpen:!0,reconnectInterval:1e3,maxReconnectInterval:3e4,reconnectDecay:1.5,timeoutInterval:2e3};d||(d={});for(var f in e)this[f]="undefined"!=typeof d[f]?d[f]:e[f];this.url=b,this.reconnectAttempts=0,this.readyState=WebSocket.CONNECTING,this.protocol=null;var h,g=this,i=!1,j=!1,k=document.createElement("div");k.addEventListener("open",function(a){g.onopen(a)}),k.addEventListener("close",function(a){g.onclose(a)}),k.addEventListener("connecting",function(a){g.onconnecting(a)}),k.addEventListener("message",function(a){g.onmessage(a)}),k.addEventListener("error",function(a){g.onerror(a)}),this.addEventListener=k.addEventListener.bind(k),this.removeEventListener=k.removeEventListener.bind(k),this.dispatchEvent=k.dispatchEvent.bind(k),this.open=function(b){h=new WebSocket(g.url,c||[]),b||k.dispatchEvent(l("connecting")),(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","attempt-connect",g.url);var d=h,e=setTimeout(function(){(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","connection-timeout",g.url),j=!0,d.close(),j=!1},g.timeoutInterval);h.onopen=function(){clearTimeout(e),(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","onopen",g.url),g.protocol=h.protocol,g.readyState=WebSocket.OPEN,g.reconnectAttempts=0;var d=l("open");d.isReconnect=b,b=!1,k.dispatchEvent(d)},h.onclose=function(c){if(clearTimeout(e),h=null,i)g.readyState=WebSocket.CLOSED,k.dispatchEvent(l("close"));else{g.readyState=WebSocket.CONNECTING;var d=l("connecting");d.code=c.code,d.reason=c.reason,d.wasClean=c.wasClean,k.dispatchEvent(d),b||j||((g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","onclose",g.url),k.dispatchEvent(l("close")));var e=g.reconnectInterval*Math.pow(g.reconnectDecay,g.reconnectAttempts);setTimeout(function(){g.reconnectAttempts++,g.open(!0)},e>g.maxReconnectInterval?g.maxReconnectInterval:e)}},h.onmessage=function(b){(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","onmessage",g.url,b.data);var c=l("message");c.data=b.data,k.dispatchEvent(c)},h.onerror=function(b){(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","onerror",g.url,b),k.dispatchEvent(l("error"))}},1==this.automaticOpen&&this.open(!1),this.send=function(b){if(h)return(g.debug||a.debugAll)&&console.debug("ReconnectingWebSocket","send",g.url,b),h.send(b);throw"INVALID_STATE_ERR : Pausing to reconnect websocket"},this.close=function(a,b){"undefined"==typeof a&&(a=1e3),i=!0,h&&h.close(a,b)},this.refresh=function(){h&&h.close()}}return a.prototype.onopen=function(){},a.prototype.onclose=function(){},a.prototype.onconnecting=function(){},a.prototype.onmessage=function(){},a.prototype.onerror=function(){},a.debugAll=!1,a.CONNECTING=WebSocket.CONNECTING,a.OPEN=WebSocket.OPEN,a.CLOSING=WebSocket.CLOSING,a.CLOSED=WebSocket.CLOSED,a});
diff --git a/frc971/http_status/web/_404.png b/frc971/http_status/www_defaults/_404.png
similarity index 100%
rename from frc971/http_status/web/_404.png
rename to frc971/http_status/www_defaults/_404.png
Binary files differ
diff --git a/frc971/http_status/web/_error.css b/frc971/http_status/www_defaults/_error.css
similarity index 100%
rename from frc971/http_status/web/_error.css
rename to frc971/http_status/www_defaults/_error.css
diff --git a/frc971/http_status/web/_error.html b/frc971/http_status/www_defaults/_error.html
similarity index 100%
rename from frc971/http_status/web/_error.html
rename to frc971/http_status/www_defaults/_error.html
diff --git a/frc971/http_status/web/_seasocks.css b/frc971/http_status/www_defaults/_seasocks.css
similarity index 100%
rename from frc971/http_status/web/_seasocks.css
rename to frc971/http_status/www_defaults/_seasocks.css
diff --git a/frc971/http_status/web/_stats.html b/frc971/http_status/www_defaults/_stats.html
similarity index 100%
rename from frc971/http_status/web/_stats.html
rename to frc971/http_status/www_defaults/_stats.html
diff --git a/frc971/http_status/web/favicon.ico b/frc971/http_status/www_defaults/favicon.ico
similarity index 100%
rename from frc971/http_status/web/favicon.ico
rename to frc971/http_status/www_defaults/favicon.ico
Binary files differ
diff --git a/frc971/prime/start_list.txt b/frc971/prime/start_list.txt
index 8b6557e..e4f0a8a 100644
--- a/frc971/prime/start_list.txt
+++ b/frc971/prime/start_list.txt
@@ -15,3 +15,4 @@
drivetrain
auto
drivetrain_action
+http_status